2017-08-29 4 views
0

Ich habe ein Problem, wenn Digitalisieren ein Bild:Binarization Bild nicht über gute Wirkung

enter image description here

Der Wanderer im Bild nach Binarizing verloren. Könnte jemand Hilfe anbieten? Hier ist der Code, den ich verwendet:

clc; 
clear; 
video = VideoReader('C:\Users\Small_Bird\Desktop\ch02_20170323193606~2.avi'); 
nFrames = video.NumberOfFrames; 
H = video.Height; 
W = video.Width; 

Rate = video.Preallocate movie structure. 

for frameNum = 3500:nFrames 
    P = read(video,frameNum); 
    grayImage=rgb2gray(P); 
    cannyEdge=edge(grayImage,'canny'); 
    [m,n]=size(grayImage); 
    for i=1:m 
     for j=1:n 
      if 1==cannyEdge(i,j) 
       h(i,j)=grayImage(i,j)+3; 
      else 
       h(i,j)=grayImage(i,j); 
      end 
     end 
    end 

    thresh=graythresh(h); 
    I2=im2bw(h,thresh); 
    subplot(2,2,1); 
    imshow(grayImage),title('original image'); 
    subplot(2,2,2); 
    imshow(cannyEdge),title('image after extracting edge'); 
    subplot(2,2,3); 
    imshow(h),title('image after strengthening edge'); 
    subplot(2,2,4); 
    imshow(I2),title('image after binaryzation'); 
end 
+0

Der Code wird angezeigt. –

Antwort

1

Das Problem ist die Wahl der Schwelle für im2bw. Sie verwenden die Funktion , um einen globalen Schwellenwert für das gesamte Bild zu berechnen, der nach Ihren Ergebnissen nur die schwarzen Teile des Bildes von den grauen oder höheren Teilen des Bildes trennt. Sie müssen einen höheren Schwellenwert wählen, entweder einen absoluten Wert, den Sie für alle Bilder verwenden, oder einen Wert, der aus einigen Merkmalen jedes Bildes berechnet wird.

Wenn Sie MATLAB Version R2016a haben oder neuer Sie haben Optionen für eine lokal adaptive Schwelle Berechnung unter Verwendung von entweder adaptthresh oder im2binarize (der Ersatz für die im2bw Funktion in neueren Versionen) die 'adaptive' method verwenden. Dies kann zu besseren Ergebnissen als einem einfachen globalen Schwellenwert führen.

+0

Es scheint, als ob alle Rand balck Pixel enthalten sind.Allerdings, danke trotzdem! –