OpenCV学习笔记(二):彩色图像取反
来源:互联网 发布:易语言球球大作战源码 编辑:程序博客网 时间:2024/05/19 03:44
OpenCV 图像取反:将图像变为原来图像的反色。例如,如果一副灰度图像的每个像素值由2^8=256个,假设点(i,j)出像素值为 a,则取反后的像素值为 255-a。
取反公式:
inv(i,j)=L-1-a(i,j) //L表示图像的灰度级
以下是利用OpenCV将彩色图像取反并保存的源代码:
#include <highgui.h>#include <core/core.hpp>#include <cv.h>#include <iostream>using namespace std;int main(){IplImage *img=0,*outImage=0;int height,width,step,channels;uchar *data;img=cvLoadImage("D:\\robot\\Picture_set1\\机器人图片.png"); //由图像路径获得图像,可以修改if (!img){cout<<"Could not load image file: "<<endl;exit(0);}/*获取图像相关信息*/height=img->height;width=img->width;step=img->widthStep;channels=img->nChannels;data=(uchar*)img->imageData;outImage =cvCreateImage(cvSize(width,height),img->depth,channels);cout<<"Processing a "<<height<<"*"<<width<<" image with "<<channels<<"channels"<<endl;const char winName1[]="inputImage";const char winName2[]="outputImage";cvNamedWindow(winName1,CV_WINDOW_AUTOSIZE);cvMoveWindow(winName1,100,100);cvNamedWindow(winName2,CV_WINDOW_AUTOSIZE);cvMoveWindow(winName2,400,400);cvShowImage(winName1,img);for (int i=0;i<height;++i){for (int j=0;j<width;++j){for (int k=0;k<channels;++k){data[i*step + j*channels + k]=255-data[i*step + j*channels + k]; //每个通道每个像素取反}}}outImage=cvCloneImage(img);cvShowImage(winName2,outImage);if (!cvSaveImage("myself.jpg",outImage)) //保存图像{cerr<<"Save image failed!"<<endl;}cvWaitKey(0);cvReleaseImage(&outImage);cvReleaseImage(&img);return 0;}
程序运行结果:
0 1
- OpenCV学习笔记(二):彩色图像取反
- OpenCV学习笔记-彩色图像取反
- opencv学习(二)分别显示彩色图像的RGB通道,以及图像的反色处理
- OpenCV学习笔记二:灰色图像转换成彩色图像 非CV_GRAY2RGB
- opencv学习(一)实现将彩色图像转换成灰度图像和二值图像
- OpenCv学习笔记(二):图像模糊
- OpenCv学习笔记(四):使用split函数提取彩色图像的三个通道
- opencv简单的彩色图像灰度化和二值化(学习笔记)
- OpenCV入门(二十一)-- 绘制彩色图像的直方图
- Linux下Opencv入门编程一 (图像取反)
- 利用matlab对彩色图像进行取反
- opencv学习笔记(二)—显示图像
- OpenCV 学习笔记 ----图像的基本操作(二)
- C# kinect v2学习笔记(三) 彩色图像
- opencv获取彩色(RGB)图像直方图
- MeanShift用于彩色图像分割(OpenCV)
- opencv 彩色图像直方图
- OpenCV学习笔记(二)ROI区域图像叠加&初级图像混合
- java TimeUnit vs Thread.sleep的用法对比
- 提升Android编译速度
- 笔记-xml-xsd:xsd中根据一个元素约束其他元素(不可行)
- 图片 二进制 转换
- C 文件加密
- OpenCV学习笔记(二):彩色图像取反
- web 开发遇到的问题
- android 如何加速./mk snod打包
- 基础练习1_闰年判断
- 2015校园招聘雅虎北京研发笔试题 系统运维岗
- 【Spark亚太研究院系列丛书】Spark实战高手之路-第一章 构建Spark集群(第五步)(3)
- php正则表达式
- 新型按键扫描程序
- android 如何用jar包代替java代码编译