Ubuntu下OpenCV编程[2]-cv::Mat类
来源:互联网 发布:淘宝产品搜索不到 编辑:程序博客网 时间:2024/06/06 05:19
cv::Mat类介绍
遍历cv::Mat图像矩阵
- 使用at函数进行遍历
- 使用迭代器进行遍历
- 使用指针进行遍历
- 使用子类 cv::Mat_ 运算符重载函数()
由于像素点的数据类型不同,将这几种方式遍历的测试函数,封装成模板函数,如下所示:
namespace Hui { // 1. 使用 for循环 + at函数 遍历图像矩阵 template <typename T> void travelMatByAt(cv::Mat &mat, T &pixel) { for (int i = 0; i < mat.rows; ++i) for (int j = 0; j < mat.cols; ++j) mat.at<T>(i, j) = pixel; } // 2. 使用 for循环 + 指针操作 遍历图像矩阵 template <typename T> void travelMatByPointer(cv::Mat &mat, T &pixel) { for (int i = 0; i < mat.rows; ++i) { T *pCol = mat.ptr<T>(i); for (int j = 0; j < mat.cols * mat.channels(); ++j) { pCol[j] = pixel; } } } // 3. 使用迭代器遍历图像矩阵 template <typename T> void travelMapByIterator(cv::Mat &mat, T &pixel) { for (cv::MatIterator_<T> it = mat.begin<T>(); it != mat.end<T>(); ++it) *it = pixel; } // 4. 使用子类 cv::Mat_ 运算符重载函数() template <typename T> void travelMapByMap_(cv::Mat &mat, T &pixel) { cv::Mat_<T> mat_ = mat; //模板类Mat_继承自Mat,=使用的是浅拷贝 for (int i = 0; i < mat_.rows; ++i) for (int j = 0; j < mat_.cols; ++j) mat_(i, j) = pixel; }}
阅读全文
0 0
- Ubuntu下OpenCV编程[2]-cv::Mat类
- OpenCv cv::Mat类用法
- OpenCV计算机编程攻略-Cv::Mat
- OpenCv cv::Mat类用法1
- OpenCv cv::Mat类用法1
- OpenCv cv::Mat类用法1
- OpenCV笔记(cv::Mat)
- OpenCv cv::Mat用法
- OpenCv IplImage 转 cv::Mat
- matlab to opencv(CV::Mat)
- opencv cv::Mat的用法
- 【OpenCV】std::vector<cv::Mat>
- [OpenCV] cv::Mat to IplImage*
- OpenCV学习(2)--cv::Mat转化为QImage
- Ubuntu 14.04 Qt5 使用 GDB-ImageWatch 插件断点查看 opencv cv::Mat 矩阵
- 如何访问opencv中cv::Mat
- 【OpenCV】cv::Mat与IplImage类型转换
- opencv c++接口 cv::Mat使用
- MATLAB 将多页.tif格式的图片转成多张单页的图片
- Ros_8
- #eclipse导入项目报错(两种错误:红色叹号,红色叉号)+ xml配置文件(光标任意位置)注释一行 快捷键:ctrl+shift+C
- String与StringBuffer的区别
- 深度学习深理解(一)-logistic回归与梯度下降法
- Ubuntu下OpenCV编程[2]-cv::Mat类
- XML学习之DOM解析
- 『用随机森林探测ss流量』论文解读
- apmserv5.2.6出现Apache启动失败或其他现象解决方法
- 走进java--深入理解java虚拟机
- Ros_9
- HBase namespace
- 设计模式——装饰者模式
- Python(5):Anaconda+Python3.6打包pyqt图形应用为EXE