#include<iostream>
#include<opencv2/opencv.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<vector>
#include<opencv2/core/core.hpp>
using namespace std;
using namespace cv;//LUT函数对图像元素进行查找、扫描和操作图像
int main()
{double time0 = static_cast<double>(getTickCount());//记录起始时间Mat src = imread("D:\\VC\\c++\\opencv源码\\opencv源码\\12.bmp");cout << "result.size()=" << src.size() << "\tresult.channels()=" << src.channels() << endl;Mat dst = src.clone();int channel = src.channels();//单通道图像if (channel == 1){ //定义函数lutuchar table[256];for (int i = 0; i < 256; i++){table[i] = 255-i;}Mat lut(1, 256, CV_8UC1, table);LUT(dst, lut, dst);}//BGR图像//if (channel == 3)//{  //使用指针对BGR图像进行反转处理//  for (int i = 0; i < dst.rows; i++)//  {//     Vec3b*image = dst.ptr<Vec3b>(i);//       for (int j = 0; j < dst.cols; j++)//      {//         image[j][0] = 255 - image[j][0];//         image[j][1] = 255 - image[j][1];//         image[j][2] = 255 - image[j][2];//     }// }//}//使用LUT函数对BGR图像进行反转处理if (channel == 3){//定义函数lutuchar table[256 * 3];for (int i = 0; i < 256; i++){table[3 * i] = 255-i;table[3 * i + 1] = 255 - i;table[3 * i + 2] = 255 - i;}Mat lut(1, 256, CV_8UC3, table);LUT(dst, lut, dst);}//subtract(减函数)用于验证dst处理后是否正确subtract(Scalar(255, 255, 255), src, src);imshow("原图", src);imshow("处理后的图", dst);time0 = ((double)getTickCount() - time0) / getTickFrequency();cout << "此方法运行时间:" << time0 << "秒" << endl;//输出运行时间waitKey(0);system("pause");return 0;
}

opencv分别使用指针和LUT函数对BGR图像像素进行反转处理相关推荐

  1. 使用opencv中的merge()函数为BGR图像添加alpha通道

    先上代码: #!/usr/bin/env python # -*- coding: utf-8 -*- # 图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 # 图像处理 ...

  2. opencv中LUT函数实现颜色空间缩减

    opencv 2中的LUT函数为 : void LUT(InputArray src, InputArray lut, OutputArray dst,int   interpolation);  s ...

  3. 【OpenCV】之LUT函数

    何为LUT,LUT(Look-Up Table)实际上就是一张像素灰度值的映射表,它将实际采样到的像素灰度值经过一定的变换如阈值.反转.二值化.对比度调整.线性变换等,变成了另外一个与之对应的灰度值, ...

  4. 【OpenCV】OpenCV函数精讲之 -- 颜色空间缩减及LUT函数

    1.颜色空间缩减 颜色空间缩减的做法是:将现有颜色空间值除以某个输入值,以获得较少的颜色数.即做减法,比如颜色值0到9可取为新值0,10到19可取为10,以此类推. 有一个简单的公式来实现颜色空间缩减 ...

  5. opencv mat 修改_OpenCV中initUndistortRectifyMap函数存在bug原因探究

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 3D视觉工坊的第52篇文章 最近在运行如下一段代码时,生成的mapx和mapy有点异常. 代码片段如下 ...

  6. 利用OpenCV的函数equalizeHist()对图像作直方图均衡化处理

    如果一幅图像的灰度值集中在某个比较窄的区域,则图像的对比度会显得比较小,不便于对图像的分析和处理. 图像的直方图均衡化可以实现将原图像的灰度值范围扩大,这样图像的对比度就得到了提高,从而方便对图像进行 ...

  7. 【opencv学习笔记】003之图像像素基本操作(获取像素指针、范围处理)及掩膜操作(filter2D)详解

    目录 一.前言 二.图像像素基本操作 1.获取图像像素指针 1.获取图像像素指针是什么? 2.相应API 3.获取目的 2.像素范围处理saturate_cast 1.像素范围处理是什么? 2.像素范 ...

  8. OpenCV-Python学习(8)—— OpenCV 颜色表操作(cv.LUT、cv.applyColorMap)

    1. 知识点 学习查找表 cv.LUT()[look up table]: 颜色查找表: 函数 cv.applyColorMap() 的使用. 2. cv.LUT() 函数说明 2.1 函数使用 cv ...

  9. OpenCV之直方图绘制(calcHist函数详解)

    目录 1.直方图的定义 2.calcHist()函数说明 3.绘制直方图 3.1 读取原图像并检查图像是否读取成功 3.2 定义直方图参数并计算直方图 3.3 绘制直方图 4.关于BGR直方图的绘制 ...

最新文章

  1. scau 2012新生赛 G只有神知道的世界
  2. JavaScript语言基础12
  3. python 笔记 haversine (两个经纬度坐标之间的距离)
  4. MySQL常用语句一、连接MySQL格式:mysql-h主机地址-u用户名-p用户密
  5. pandas 把某一列中字符串变数值_Python学习教程:Python数据分析实战基础 | 初识Pandas...
  6. 第二十一章 刘备脱险
  7. elasticjob 分片策略
  8. 多层bom展开_K3 BOM 多级展开SQL
  9. nodejs爬虫抓取搜狗微信文章详解
  10. 详解DFT的scan(边界扫描)
  11. LayUI中的基本元素之进度条
  12. RGB彩色图像、灰度图像
  13. 原创 | 一文读懂机器学习中的shapley值方法
  14. AIT Worldwide Logistics与卡利塔航空建立民航预备队合作伙伴关系
  15. Dubbo3.0系列(2)- Dubbo3.0核心概念与架构
  16. 用超级终端给手机烧IMEI号
  17. 教你从头发洞察宝宝的健康情况
  18. win7下微软自带语音识别的系统命令(二)
  19. (四)美赛画图篇:画图模板+画图工具
  20. 【微信支付】(亲测可用)对接app微信支付V2版本 后端代码示例

热门文章

  1. HarmonyOS 点击事件的实现
  2. The form contains the following errors
  3. Java 反射 (快速了解反射)
  4. C中文件操作的文本模式和二进制模式,到底有啥区别?
  5. oracle数据库 export,转:Oracle数据库的备份方法——使用export作为备份
  6. cocos2d-x 3.10 PageView BUG
  7. WebApi2官网学习记录---异常处理
  8. C# split 几种使用方法
  9. 关于css中float的一切
  10. 小手段:开启 GNOME 的窗口分组效果