基于MATLAB的手写公式识别(9)

基于MATLAB的手写公式识别(9)

1.2图像的二值化

 

close all;
clear all;
Img=imread('drink.jpg');

%灰度化
Img_Gray=rgb2gray(Img);

%二值化
%直方图双峰法,适用于典型的双峰图,不适用于直方图中双峰相差较大,或双峰间的谷比较平坦,也不适用于单峰。
figure('name','image after graying'),imshow(Img_Gray);
figure,imhist(Img_Gray),title('灰度直方图');
Img_Binary1=im2bw(Img_Gray,0.57);
figure('name','image after binarying'),subplot(1,2,1),imshow(Img_Binary1),title('直方图法')

%大津法
%可能产生过度分割现象,适用于前景和背景差别大的图像。
level=graythresh(Img_Gray);%使用graythresh计算灰度门槛
level
Img_Binary2=im2bw(Img_Gray,level);
subplot(1,2,2),imshow(Img_Binary2),title('大津法');

%经过查阅文献,发现无论那种算法,都或多或少存在问题,阈值分割法导致图像粘连而大津法会使图像分割1过重,我在这里忽略掉其他复杂的算法,最后采取实验确定阈值法来决定最后的LEVEL;

 

  相应结果如下:

基于MATLAB的手写公式识别(9)

 

最后会根据分割情况二次确定阈值。

2021-04-01 08:34:17

 

上一篇:opencv图像特效之油画特效


下一篇:OpenCV C++光流法进行运动目标检测