【opencv练习28 - 直方图计算】
来源:互联网 发布:徐达 知乎 编辑:程序博客网 时间:2024/05/18 16:13
/******************************************************* 测试程序 【直方图计算】 时间:2016年8月31日 函数:equalizeHist //【计算直方图】 Compute the histograms: //参数:src,源数组个数,每个通道(1 dim = 0),Mat(), 每个bin尺寸归一化,直方图初始化清零 calcHist( &bgr_planes[0], 1, 0, Mat(), b_hist, 1, &histSize, &histRange, uniform, accumulate ); //【归一化输出结果】 //参数:src,dst,0,histImage.rows(归一化上下限),?,? normalize(b_hist, b_hist, 0, histImage.rows, NORM_MINMAX, -1, Mat() );********************************************************/int main(void){ Mat src, dst; src = imread("YY01.jpg", 1 ); //【BRG——通道分离】 vector<Mat> bgr_planes; split( src, bgr_planes ); int histSize = 256; //【256条】 float range[] = { 0, 256 } ; //【设置范围(一维数组0,256)】 const float* histRange = { range }; //【常量指针 float*(范围指针)】 bool uniform = true; bool accumulate = false; Mat b_hist, g_hist, r_hist; //灰度矩阵*3 //【计算直方图】 calcHist( &bgr_planes[0], 1, 0, Mat(), b_hist, 1, &histSize, &histRange, uniform, accumulate ); calcHist( &bgr_planes[1], 1, 0, Mat(), g_hist, 1, &histSize, &histRange, uniform, accumulate ); calcHist( &bgr_planes[2], 1, 0, Mat(), r_hist, 1, &histSize, &histRange, uniform, accumulate ); //【绘制直方图BGR】 int hist_w = 512; //宽 int hist_h = 400; //高 int bin_w = cvRound( (double) hist_w/histSize ); //bin宽度 Mat histImage( hist_h, hist_w, CV_8UC3, Scalar( 0,0,0) ); //初始化Mat histImage(x,y,CV_8UC3, ~ ) //【归一化输出结果】 //参数:src,dst,0,histImage.rows(归一化上下限),?,? normalize(b_hist, b_hist, 0, histImage.rows, NORM_MINMAX, -1, Mat() ); normalize(g_hist, g_hist, 0, histImage.rows, NORM_MINMAX, -1, Mat() ); normalize(r_hist, r_hist, 0, histImage.rows, NORM_MINMAX, -1, Mat() ); //【绘制每一个通道】 Draw for each channel for( int i = 1; i < histSize; i++ ) { line( histImage, Point( bin_w*(i-1), hist_h - cvRound(b_hist.at<float>(i-1)) ) , Point( bin_w*(i), hist_h - cvRound(b_hist.at<float>(i)) ), Scalar( 255, 0, 0), 2, 8, 0 ); line( histImage, Point( bin_w*(i-1), hist_h - cvRound(g_hist.at<float>(i-1)) ) , Point( bin_w*(i), hist_h - cvRound(g_hist.at<float>(i)) ), Scalar( 0, 255, 0), 2, 8, 0 ); line( histImage, Point( bin_w*(i-1), hist_h - cvRound(r_hist.at<float>(i-1)) ) , Point( bin_w*(i), hist_h - cvRound(r_hist.at<float>(i)) ), Scalar( 0, 0, 255), 2, 8, 0 ); } imshow("YY01", src ); imshow("calcHist Demo", histImage ); waitKey(0); return 0;}
0 0
- 【opencv练习28 - 直方图计算】
- 【OpenCV】直方图计算
- OpenCV 计算二维直方图
- opencv计算直方图
- opencv 计算直方图 calcHist()
- 【opencv练习27 - 直方图均衡】
- 【opencv练习29 - 直方图比较】
- Opencv之直方图计算calcHist
- opencv 3.0 直方图的计算
- calcHist()计算图像直方图opencv
- OpenCv计算直方图cv::calcHist
- OpenCV之图像直方图计算
- 【Opencv】【C++】 Opencv之calcHist() 计算直方图
- 【Opencv】【C++】 Opencv之calcHist() 计算直方图
- 《学习OpenCV》第七章直方图(练习7.1)
- 《学习OpenCV》第七章直方图(练习7.2)
- opencv-直方图计算R,G,B
- OpenCV 计算图像一维直方图
- ubuntu14.04 怎么打开rar的文件
- angularJS下载站点-编译后的版本下载
- HttpURLConnection下载文件带进度Code
- UITableView——dataSource
- handler, Looper, Message三者的关系,作者写的很好很详细。
- 【opencv练习28 - 直方图计算】
- UITableView——delegate
- 数组名为常指针,与数组第一个元素地址相同
- 纯CSS实现气泡框
- 【华为OJ】由寻找等差数列(初级)到动态规划
- quartz1.8+jdk1.5入门学习
- 智能算法---蚁群算法介绍
- 时序(二)----时序逻辑电路
- 剑指offer面试题12:打印1到最大的n位数