7

Ich habe eine Filmdatei, in der ich die Bewegung eines Punktes aufzeichnen möchte; Mittelpunkt eines kreisförmigen Merkmals, um genau zu sein. Ich versuche dies mit Kantenerkennung und Eckenerkennung in Matlab zu erreichen.Wie wird die Region von Interesse (ROI) für Kantenerkennung und Eckenerkennung in Matlab bereitgestellt?

Um dies zu tun, wie definiere ich eine Region von Interesse in dem Video? Ist Subplot eine gute Idee?

Ich habe versucht, diese mit den binären Masken wie unten,

hVideoSrc = vision.VideoFileReader('video.avi','ImageColorSpace', 'Intensity'); 
hEdge = vision.EdgeDetector('Method', 'Prewitt','ThresholdSource', 'Property','Threshold', 15/256, 'EdgeThinning', true); 
hAB = vision.AlphaBlender('Operation', 'Highlight selected pixels'); 
WindowSize = [190 150]; 
hVideoOrig = vision.VideoPlayer('Name', 'Original'); 
hVideoOrig.Position = [10 hVideoOrig.Position(2) WindowSize]; 

hVideoEdges = vision.VideoPlayer('Name', 'Edges'); 
hVideoEdges.Position = [210 hVideoOrig.Position(2) WindowSize]; 

hVideoOverlay = vision.VideoPlayer('Name', 'Overlay'); 
hVideoOverlay.Position = [410 hVideoOrig.Position(2) WindowSize]; 

c = [123 123 170 170]; 
r = [160 210 210 160]; 
m = 480; % height of pout image 
n = 720; % width of pout image 
BW = ~poly2mask(c,r,m,n); 

while ~isDone(hVideoSrc) 
    dummy_frame = step(hVideoSrc) > 0.5;    % Read input video 
    frame = dummy_frame-BW; 
    edges = step(hEdge, frame); 
    composite = step(hAB, frame, edges);  % AlphaBlender 

    step(hVideoOrig, frame);     % Display original 
    step(hVideoEdges, edges);     % Display edges 
    step(hVideoOverlay, composite);    % Display edges overlayed 
end 
release(hVideoSrc); 

durchzuführen, aber es stellt sich heraus, dass die Maske auf den Rahmen für das ursprüngliche Video nur gut angelegt ist. Der Kantenerkennungsalgorithmus erkennt die Kanten, die durch die binäre Maske maskiert werden. Wie kann ich andere Features dauerhaft maskieren und Kanten erkennen?

Antwort

2

Ist das was du meinst?

BW = poly2mask(c,r,m,n); 
frame = dummy_frame .* BW; 
Verwandte Themen