《学习OpenCV》第七章直方图(练习7.1)
来源:互联网 发布:华为软件研发面试题 编辑:程序博客网 时间:2024/05/29 03:34
《学习OpenCV》第七章课后题一
7.1 在0-1之间生成1000个随机值ri,定义一个bin的大小,并且建立一个直方图几1/ri。
在每一个bin中元素数是否相同(正负差值在10内即可)
#include <iostream>#include <opencv2/opencv.hpp>#include <opencv2/highgui.hpp>using namespace std;using namespace cv;#define cvQueryHistValue_1D( hist, idx0 ) cvGetReal1D( (hist)->bins, (idx0) )int main(int argc, const char * argv[]) { /*1、生成一个随机种子*/ CvRNG rng; rng = cvRNG(cvGetTickCount()); /*2、创建一个1*1000的图像,实际上就是一个Vector*/ IplImage * Img = cvCreateImage(cvSize(1, 1000), IPL_DEPTH_32F, 1); cout<<Img->widthStep<<endl; cout<<Img->width<<endl; cout<<Img->height<<endl; /*3、对图像进行赋值*/ for(int i = 0;i<1000;i++) { cvSet1D(Img, i, cvScalar(cvRandReal(&rng))); } /*4、查看Img存储的数据是否正确,注意Img的depth,提取data需要保存位float*/ int count = 0; for(int i = 0;i<Img->height;i++) { float * ptr =(float *)(Img->imageData + i * Img->widthStep); //存的是float,用char提取会强制阶段了 for(int j = 0;j<Img->width;j++) { count++; cout<<count <<" -> "<<(float)(ptr[j])<<endl; } } cout<<"**********************************************"<<endl; /*5、创建hist,直方图数据块 */ int dims = 1; //维度是1 int bins = 5; int hist_size[] = {bins}; float rags[] = {0,1}; //采用均匀直方图,ranges的上下边界位0和1,bins值位5,所以【0,0.2】,【0.2,0.4】... float * ranges[] = {rags}; //指针数组 CvHistogram * hist = cvCreateHist(dims, hist_size, CV_HIST_ARRAY,ranges,1); /*5、累计每个区域内的值的个数*/ int arr[5] = {0}; for(int i = 0;i<1000;i++) { float value = cvGetReal1D(Img, i); if(value<0.2) { arr[0]++; } else if (value < 0.4) { arr[1]++; } else if (value < 0.6) { arr[2]++; } else if (value < 0.8) { arr[3]++; } else { arr[4]++; } } for(int i = 0;i<5;i++) { cout<<arr[i]<<endl; } /*6、计算直方图*/ cvCalcHist(&Img, hist , 0 ,0); /*7、取直方图的值*/ for (int j = 0; j < bins; j++) { double values = cvQueryHistValue_1D(hist,j); cout<<"the bins of "<< j<<":"<<values<<endl; } return 1; }
阅读全文
0 0
- 《学习OpenCV》第七章直方图(练习7.1)
- 《学习OpenCV》第七章直方图(练习7.2)
- 第七章 学习OpenCV——直方图与匹配
- OpenCV 第七章 单路直方图
- opencv第七章-直方图与匹配
- opencv第七章-直方图与匹配(2)
- opencv 第七章《直方图与匹配》 知识点整理、总结
- OpenCV学习笔记(26)灰度直方图 练习
- OpenCV学习笔记(27) 灰度直方图均衡化 练习
- 学习opencv第七章(7.1)
- 【opencv练习27 - 直方图均衡】
- 【opencv练习28 - 直方图计算】
- 【opencv练习29 - 直方图比较】
- 学习opencv第七章7.2
- opencv直方图使用学习
- opencv学习-imgprocess-直方图
- opencv 学习之 直方图
- opencv学习笔记--直方图
- 射频了解一丢丢【1】
- MacOS 下 破解 sublime text 2(转)
- 从SRCNN到EDSR,总结深度学习端到端超分辨率方法发展历程
- js判断用户手机是IOS还是安卓
- 使用PL/SQL连接Oracle时报错ORA-12541: TNS: 无监听程序
- 《学习OpenCV》第七章直方图(练习7.1)
- ndk-stack 把堆栈定位出来
- java 图片合成
- 优先级队列PriorityQueue介绍
- Bootstrap——起步概览
- Node.js--异步机制下保证逻辑顺序的一些理解
- FRR、FAR和ERR
- linux安装idea(CentOS 7)
- IPAD/IOS 访问限制密码找回方法(设置-通用-访问限制-密码的非刷机找回方法)