7
나는 포인트의 움직임을 기록하는 데 관심이있는 동영상 파일을 가지고 있습니다. 특정 원형 기능의 중심. MATLAB에서 가장자리 감지 및 코너 감지 기술을 사용하여이 작업을 수행하려고합니다.Matlab에서 가장자리 감지 및 코너 감지에 관심 영역 (ROI)을 제공하는 방법은 무엇입니까?
이렇게하려면 비디오에서 관심 영역을 어떻게 지정합니까? 서브 플로트는 좋은 아이디어입니까?
나는 아래와 같이 바이너리 마스크를 사용하여이 작업을 수행 할 수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);
을 시도했지만 그것은 프레임에 적용되는 마스크는 원본 비디오에 대한 좋은 것으로 나타났다. 에지 검출 알고리즘은 바이너리 마스크에 의해 마스킹 된 에지를 검출한다. 다른 기능을 영구히 마스크 처리하고 가장자리 감지를 수행하려면 어떻게합니까?