Vision & Otsu BinarizationBinarisasi Visi & Otsu
Raw handwriting images frequently exhibit uneven illumination and visual noise from paper textures. In this initial stage, the system applies the Inverse Otsu's Thresholding algorithm. Rather than relying on a static contrast threshold, it mathematically calculates the optimal boundary to separate ink strokes from the background. This process yields a pristine binary matrix as the foundation for neural processing.
Citra tulisan tangan mentah umumnya memiliki intensitas cahaya yang tidak merata serta derau visual dari tekstur kertas. Pada tahap awal ini, sistem menerapkan algoritma Inverse Otsu's Thresholding. Alih-alih menggunakan nilai ambang statis, algoritma ini menghitung titik kontras paling optimal secara matematis untuk memisahkan guratan tinta dari latar belakang. Proses ini menghasilkan matriks biner yang sepenuhnya bersih sebagai landasan pemrosesan jaringan saraf.
def apply_otsu_variance(image_matrix):
# 1. Bersihkan noise kecil dengan Gaussian Blur
blurred = cv2.GaussianBlur(image_matrix, (5, 5), 0)
# 2. Hitung ambang batas optimal secara dinamis
optimal_t, binary_tensor = cv2.threshold(
blurred, 0, 255,
cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU
)
return (binary_tensor.astype('float32') / 255.0)