图像处理之(直方图)反向投影
2014-08-22 16:41
267 查看
反向投影是一种记录像素点或像素块如何使用直方图模型中的分布方式。
实例:皮肤
Opencv函数:
混合通道:
直方图 :
TIP:其中histSize和histRange由hsv_s图像的直方图决定,在使用range:0~255,size:256时看到像素集中于0~120,其中直方图多个分界线能看到,以直方图峰数量为size,能较好分出几个不同物体。
具体还可参考:http://blog.csdn.net/xiaojidan2011/article/details/8059048
实例:皮肤
Opencv函数:
混合通道:
#include "cv.h" #include "highgui.h" using namespace cv; using namespace std; int main(int argc,char *argv[]) { Mat src,hsv,hsv_s,hist,backProj; src=imread("test1.jpg"); cvtColor(src,hsv,CV_BGR2HSV); hsv_s.create(hsv.size(),hsv.depth());//depth只有深度信息,type有深度和通道数信息 int ch[]={0,0}; mixChannels(&hsv,1,&hsv_s,1,ch,1); imshow("hsv_s",hsv_s); imwrite("hsv_s.jpg",hsv_s); int channels=0; int histSize=10; float range[]={0,180}; //由于图像中像素灰度小,使用较小范围,同时通过histSize可以提高精度。 const float *histRange={range}; calcHist(&hsv_s,1,&channels,Mat(),hist,1,&histSize,&histRange); normalize(hist,hist,0,255,NORM_MINMAX); calcBackProject(&hsv_s,1,&channels,hist,backProj,&histRange,1,true); imshow("backProj",backProj); imwrite("backProj.jpg",backProj); Mat histImg=Mat::zeros(256,400,CV_8UC1); int binWidth=cvRound(400./histSize); for (int i=0;i<histSize;i++) rectangle(histImg,Point(i*binWidth+1,255),Point((i+1)*binWidth-1,255-cvRound(hist.at<float>(i))),Scalar::all(255),CV_FILLED); imshow("histImg",histImg); imwrite("histImg.jpg",histImg); waitKey(0); destroyAllWindows(); return 0; }效果: 反向投影结果
直方图 :
TIP:其中histSize和histRange由hsv_s图像的直方图决定,在使用range:0~255,size:256时看到像素集中于0~120,其中直方图多个分界线能看到,以直方图峰数量为size,能较好分出几个不同物体。
具体还可参考:http://blog.csdn.net/xiaojidan2011/article/details/8059048
相关文章推荐
- OpenCV之imgproc 模块. 图像处理(4)直方图均衡化 直方图计算 直方图对比 反向投影 模板匹配
- Python-OpenCV 处理图像(四):图像直方图和反向投影
- OpenCV之彩色直方图反向投影(图像相似性检测)
- OpenCV—反向投影直方图检测特定图像内容
- OpenCV_颜色直方图的计算、显示、处理、对比及反向投影
- OpenCV之彩色直方图反向投影(图像相似性检测)
- Python OpenCV学习笔记之:图像直方图反向投影(backprojection)原理简单实现
- OpenCV_颜色直方图的计算、显示、处理、对比及反向投影
- OpenCV_颜色直方图的计算、显示、处理、对比及反向投影【转】
- 图像直方图和反向投影的肤色检测
- 图像直方图和反向投影的肤色检测
- 颜色直方图的计算、显示、处理、对比及反向投影(How to Use Histogram? Calculate, Show, Process, Compare and BackProject)
- 直方图的均衡、直方图的反向投影算法,opencv鼠标和键盘处理事件
- opencv2 反向投影直方图检测特定图像内容
- Python OpenCV学习笔记之:图像直方图反向投影
- OpenCV_颜色直方图的计算、显示、处理、对比及反向投影
- 图像处理反向投影原理理解
- 【计算机视觉】反向投影直方图检测特定的图像内容
- OpenCV之灰度直方图反向投影(图像相似性检测)
- OpenCV之灰度直方图反向投影(图像相似性检测)