我需要模仿 Matlab 的 regionprop(BW,'Area') 对 OpenCV 所做的事情。
我在 Matlab 中有这段代码
[L,N] = bwlabel(image1,8);
S = regionprops(L,'Area','PixelIdxList');
output=[];
for i=1:N,
output(i)=S(i).Area;
end
在 OpenCV 中
cv::findContours(cvImageMat,contours,CV_RETR_LIST,CV_CHAIN_APPROX_NONE);
int iNumSegments = contours.size();
for(int i=0;i<iNumSegments;i++)
{
cv::vector<cv::Point> approx;
cv::approxPolyDP(cv::Mat(contours[i]), approx, 1.0e-10, true);
double area = fabs( cv::contourArea( approx ) );
dvResult.push_back(area);
}
但是对于 2048 x 2048 大小的图像,计算的两个区域之间的每个差异约为 400。他们应该是一样的,让我继续前进。有人对此有什么建议吗?