OpenCV 灰度调色的几种方法
来源:互联网 发布:网店代运营知乎 编辑:程序博客网 时间:2024/06/05 20:05
实现灰度反转即
Mat table(1, 256, CV_8U); uchar* p = table.data; for( int i = 0; i < 256; ++i) p[i] = 255-i;1.指针实现较高效
Mat& ScanImageAndReduceC(Mat& I, const uchar* const table) { CV_Assert(I.depth() != sizeof(uchar)); int channels = I.channels(); int nRows = I.rows; int nCols = I.cols * channels; if (I.isContinuous()) { nCols *= nRows; nRows = 1; } int i,j; uchar* p; for( i = 0; i < nRows; ++i) { p = I.ptr<uchar>(i); for ( j = 0; j < nCols; ++j) { p[j] = table[p[j]]; } } return I; }2.迭代器较安全
Mat& ScanImageAndReduceIterator(Mat& I, const uchar* const table) { CV_Assert(I.depth() != sizeof(uchar)); const int channels = I.channels(); switch(channels) { case 1: { MatIterator_<uchar> it, end; for( it = I.begin<uchar>(), end = I.end<uchar>(); it != end; ++it) { *it = table[*it]; break; } case 3: { MatIterator_<Vec3b> it, end; for( it = I.begin<Vec3b>(), end = I.end<Vec3b>(); it != end; ++it) { (*it)[0] = table[(*it)[0]]; (*it)[1] = table[(*it)[1]]; (*it)[2] = table[(*it)[2]]; } } } return I; }
3.LUT函数 推荐
Mat& ScanImageAndReduceLUT(Mat& I,const unchar* const table) { Mat J; LUT(I, table, J); return J; }
阅读全文
0 0
- OpenCV 灰度调色的几种方法
- 总结了Opencv对灰度图直方化的六种方法
- 几种不同的彩色图像转灰度方法
- MATLAB几种 彩色图像to灰度图像 的方法
- OpenCV常用的灰度变换方法
- opencv的java方法求灰度直方图
- Opencv实现可调色画笔的功能
- OpenCV背景去除的几种方法
- OpenCV背景去除的几种方法
- OpenCV几种边缘检测的方法
- OpenCV背景去除的几种方法
- OpenCV背景去除的几种方法
- Opencv-遍历图像的几种方法
- opencv访问元素的几种方法
- RGB转灰度的几种算法
- opencv学习笔记之对灰度图像遍历的三种方法
- opencv学习笔记之对灰度图像遍历的三种方法
- OpenCV遍历彩色图像、灰度图像的像素值方法
- ps查看线程
- MySQL环境配置
- binary tree
- Spring LDAP连接异常解决
- linux安全上下文
- OpenCV 灰度调色的几种方法
- 查看网络链接
- 2路归并排序的非递归实现
- 使用Node.js创建一个简单的本地页面服务器
- linux命令收集
- Mybatis Cannot find class: BaseResultMap
- 虚拟现实未来前景无限
- elasticsearch 重启节点
- 数据分析和数据分析师