如何在 MAtlab 中从左到右指定 ROI
How to specify ROIs from left to right in MAtlab
我刚接触 Matlab。我正在 Mat-lab 上研究 vision.CascadeObjectDetector 并被使用两次来找出两个不同的对象(单独训练),例如视频中的 E 和 K。 bbox 和 bbox2 是各自的 ROI。部分代码如下
while ~isDone(videoFileReader)
videoFrame=step(videoFileReader);
bbox=step(letterDetector_E,videoFrame);
bbox2=step(letterDetector_K,videoFrame);
C = vertcat(bbox,bbox2);
videoOut=insertObjectAnnotation(videoFrame, 'rectangle', C, 'E&K');
step(videoPlayer, videoOut);
end
我想把每个ROI(bbox和bbox2一起考虑)从左到右,从上到下像阅读一页一样一个接一个。我该怎么做。
我不确定这里的bbox
是什么格式,但假设它是一个向量bbox = [xUpperLeft, yUpperLeft, width, height]
,你只需要连续按两列排序即可。为此,您可以使用 sortrows
:
sortrows(C, [1 2]);
这会将 C
的行首先按 xUpperLeft
(第一列)排序,然后按 yUpperLeft
(第二列)排序。另请参阅类似问题 here。
我刚接触 Matlab。我正在 Mat-lab 上研究 vision.CascadeObjectDetector 并被使用两次来找出两个不同的对象(单独训练),例如视频中的 E 和 K。 bbox 和 bbox2 是各自的 ROI。部分代码如下
while ~isDone(videoFileReader)
videoFrame=step(videoFileReader);
bbox=step(letterDetector_E,videoFrame);
bbox2=step(letterDetector_K,videoFrame);
C = vertcat(bbox,bbox2);
videoOut=insertObjectAnnotation(videoFrame, 'rectangle', C, 'E&K');
step(videoPlayer, videoOut);
end
我想把每个ROI(bbox和bbox2一起考虑)从左到右,从上到下像阅读一页一样一个接一个。我该怎么做。
我不确定这里的bbox
是什么格式,但假设它是一个向量bbox = [xUpperLeft, yUpperLeft, width, height]
,你只需要连续按两列排序即可。为此,您可以使用 sortrows
:
sortrows(C, [1 2]);
这会将 C
的行首先按 xUpperLeft
(第一列)排序,然后按 yUpperLeft
(第二列)排序。另请参阅类似问题 here。