我是matlab的新手。我想测量RGB或灰度图像中边界框的x和y坐标和质心。我不知道该怎么做才能解决这个问题。任何人都可以帮我解决这个问题吗?
这是我到目前为止的代码
frame=step(obj);
bbox=step(faceDetector,frame);
boxInserter = insertObjectAnnotation(frame,'rectangle',bbox, 'Face Detected');
imshow(boxInserter,'border','tight');
答案 0 :(得分:0)
根据您的框架所具有的面数,step
方法会返回具有不同尺寸的bbox
矩阵,其中包含边界框本身的坐标。有关bbox
的说明,请参阅此处:
https://www.mathworks.com/help/vision/ref/vision.cascadeobjectdetector.step.html
所以,例如,
% Create a cascade detector object.
faceDetector = vision.CascadeObjectDetector();
% Read a video frame and run the detector.
videoFileReader = vision.VideoFileReader('visionface.avi');
videoFrame = step(videoFileReader);
bbox = step(faceDetector, videoFrame);
在bbox
:
264 122 93 93
这些数字的格式为:[x y width height]
所以面部的x,y位置是[264,122]。从这些数字计算质心应该相当简单。