显示图像opencv的水平和垂直投影的直方图

时间:2016-06-29 18:00:19

标签: c++ opencv histogram projection

我有一个轮廓图像的水平和垂直投影{Mat shape}。我想将它显示为直方图。我尝试使用线功能进行规范化和绘图但是不能。请帮忙 。提前致谢。silhouette

Mat ret;
threshold(shape,ret,0,255,CV_THRESH_BINARY_INV+CV_THRESH_OTSU);
Mat horizontal(ret.cols,1,CV_32S);//horizontal histogram
horizontal = Scalar::all(0);
Mat vertical(ret.rows,1,CV_32S);//vertical histogram
vertical = Scalar::all(0);
for(int i=0;i<ret.cols;i++)
{
    horizontal.at<int>(i,0)=countNonZero(ret(Rect(i,0,1,ret.rows)));
}
for(int i=0;i<ret.rows;i++)
{
   vertical.at<int>(i,0) = countNonZero(ret(Rect(0,i,ret.cols,1)));
}
normalize(vertical,vertical,0,ret.rows,NORM_MINMAX);

0 个答案:

没有答案