표시된 이미지에 다양한 이진화 알고리즘을 구현하려고합니다.
코드는 다음과 같습니다.
clc;
clear;
x=imread('n2.jpg'); %load original image
% 이제 계산 작업이 나중에 더 쉬워 지도록 이미지 크기를 조정합니다.
size(x);
x=imresize(x,[500 800]);
figure;
imshow(x);
title('original image');
z=rgb2hsv(x); %extract the value part of hsv plane
v=z(:,:,3);
v=imadjust(v);
이제 niblack 및 % sauvola 알고리즘에 필요한 평균 및 표준 편차를 찾습니다.
m = mean(v(:))
s=std(v(:))
k=-.4;
value=m+ k*s;
temp=v;
niblack 임계 값 알고리즘 구현 비율 :
for p=1:1:500
for q=1:1:800
pixel=temp(p,q);
if(pixel>value)
temp(p,q)=1;
else
temp(p,q)=0;
end
end
end
figure;
imshow(temp);
title('result by niblack');
k=kittlerMet(g);
figure;
imshow(k);
title('result by kittlerMet');
소 볼라 임계 값 알고리즘 구현 비율 :
val2=m*(1+.1*((s/128)-1));
t2=v;
for p=1:1:500
for q=1:1:800
pixel=t2(p,q);
if(pixel>value)
t2(p,q)=1;
else
t2(p,q)=0;
end
end
종료
figure;
imshow(t2);
title('result by sauvola');
내가 얻은 결과는 다음과 같습니다.
보시다시피 결과 이미지가 어두운 곳에서 저하됩니다. 누군가 내 결과를 최적화하는 방법을 제안 할 수 있습니까?