Bir noktanın hareketini kaydetmekle ilgilendiğim bir film dosyası var; özel olması için dairesel bir özellik merkezi. Matlab'da kenar algılama ve köşe algılama teknikleri kullanarak bunu yapmaya çalışıyorum.Matlab'da kenar algılama ve köşe algılama için ilgi bölgesi (ROI) nasıl sağlanır?
Bunu yapmak için, videodaki bir ilgi alanını nasıl belirleyebilirim? Altpip iyi bir fikir mi?
Ben, aşağıda ikili maskeler kullanarak bu gerçekleştirmek içinhVideoSrc = 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);
çalışıyordu ama çerçeve üzerinde uygulanan maske sadece orijinal video için iyi olduğu ortaya çıktı. Kenar algılama algoritması, ikili maske tarafından maskelenen kenarları algılar. Diğer özellikleri kalıcı olarak nasıl gizleyebilirim ve kenar algılamayı nasıl yapabilirim?