基于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;
相应结果如下:
最后会根据分割情况二次确定阈值。
2021-04-01 08:34:17