opencv中ptr的使用
2015-06-17 09:45
531 查看
#include <QCoreApplication> #include<stdio.h> #include<opencv2/highgui/highgui.hpp> #include<opencv2/core/core.hpp> using namespace cv; void colorReduce(Mat &image,int div =64){ int nl = image.rows; int nc =image.cols*image.channels(); for(int j =0;j<nl;j++ ) { uchar* data = image.ptr<uchar>(j);//最需要注意的就是这行代码的使用 for(int i=0;i<nc;i++) { qDebug("the first data[i] is %d",data[i]); data[i] = data[i]/div*div ; /************************** 另外此处还可以如此 使用uchar *data = image.ptr<uchar>(j)[i]; 这种方式更加经典,执行效率更高 ********************************/ qDebug("the second data[i] is %d",data[i]);
// data[i] = data[i]/(div*div)+ div/2;
// data[i] = data[i]%div+ div/2; // data[i] = data[i] + div/2; } } } int main() { Mat image1; image1 = imread("/home/bi/pic/mei.jpg"); namedWindow("image1"); imshow("image1",image1); namedWindow("colorReduce"); colorReduce(image1); //QCoreApplication a(argc, argv); imshow("colorReduce",image1); waitKey(); return 0; //return a.exec(); }
template<typename _Tp> class Ptr { public: // default constructor Ptr(); // constructor that wraps the object pointer Ptr(_Tp* _obj); // destructor: calls release() ~Ptr(); // copy constructor; increments ptr’s reference counter Ptr(const Ptr& ptr); // assignment operator; decrements own reference counter // (with release()) and increments ptr’s reference counter Ptr& operator = (const Ptr& ptr); // increments reference counter void addref();
相关文章推荐
- 出大事了,据说微软要收购Docker?
- Linux基础(四):文本编辑器Vim
- solr 学习网站
- Linux cpuidle framework(1)_概述和软件架构
- Linux中7个用来浏览网页和下载文件的命令
- VxWorks的环形缓冲区和linux的环形缓冲区的区别
- Linux定时任务Crontab详解
- 《Hadoop基础教程》之初识Hadoop
- Tomcat常用的优化技巧
- tomcat配置文件server.xml详细配置
- Linux脚本中用户自定义终止符-<<EOF
- 监控SharePoint效率之(五) –服务器场健康状况分析
- OpenGL openmesh cgal
- 网站变灰代码
- 详解Linux中SSH远程访问控制
- linux定时器
- 第十四周项目3:OOP版电子词典
- 架构师速成3-开发者境界
- 架构师速成3-开发者境界 分类: 架构师速成 2015-06-17 09:14 173人阅读 评论(0) 收藏
- linux nice命令: 设置进程优先级