2017-02-12 5 views
0

これは大津法による優れたバイナリイメージを見つけることは可能ですか?大津の方法を使用してこのような画像に対してotsuメソッドで良いバイナリ画像を見つけることは可能でしょうか?

、このような画像の2値化は、私がこの画像にしようとした任意のしきい値のための良好な出力を表示しません。ここで

a6.jpg
a6.jpg

は私のコードです:

A=imread('a6.jpg'); 
im=rgb2gray(A); 
figure,imshow(im); title('gray image'); 
im=A(:,:,1); 
[q r]=size(im); 
s=r/2; 
if true 
    %code 
    n1 = im(:, 1 : end/2); %image(x,y,c) c is matrix displayed as image 
    n2 = im(:, end/2+1 : end);%indicate last array index 
    if true 
     D=imhist(n2)-imhist(n1); 
     thresh_level = graythresh(D); %find best threshold level 
     c=zeros(size(im)); 
     [r c1] = size(im); 
     allpix=im; 
     allpix(allpix>thresh_level*200)=1; 
     allpix(allpix<=thresh_level*0)=0; 
     c=allpix; 
     figure,imshow(c); title('binary image'); 

    end 
end 

良いバイナリイメージを得るためのしきい値はありますか?

+0

を出力? – flawr

+0

確かに、出力イメージ 'c'はバイナリイメージではありません。また、不必要なコードがたくさんあるようです。あなたの例を最小限に抑えてください。 – flawr

+0

それはバイナリイメージではないですし、実装がuは説明大津method.ifではありません、それは私のために参考になるのはなぜ理解できませんでした。だから、 –

答えて

0

私はあなたのプログラムが何をしているかわかりませんが、これは十分なはずです:

A=imread('a6.jpg'); 
im=rgb2gray(A); 
imshow(im); title('gray image'); 
c=im2bw(im,graythresh(im)); 
imshow(c); title('binary image'); 

そして、それはあなたがあなたのプログラムが大津のメソッドを実装していると主張

enter image description here

+0

そのイメージはテキスト認識には適していません。バイナリゼーションとしては壊滅的なものではありませんが。ストローク幅の変換は、代わりにCannyエッジ検出を使用します。ただし、ぼかし領域は、あなたが何をするにしても挑戦的です。 –

+0

あなたは正しいですが、OPはテキスト認識について何も言及していませんでした。彼はMATLABで大津のメソッドについて質問していました。 – flawr

関連する問題