OpenCV简单例子之图像反转

首先先声明本人也是刚刚开始学习OpenCV,希望我能与大家一起分享交流学习经验哈。

 

最近学了一些OpenCV的一些简单例子,希望能够帮助我们这些OpenCv初学者。

 

首先OpenCV还不会安装和配置的娃可以参考我的另一篇博客http://blog.jhonse.com/index.php/archives/1073.jhonse

 

#include"cv.h"
#include "highgui.h"
#include <iostream>
using namespace std;
#pragma comment(lib,"cv.lib")         //这些连接库可以放在工程设置里的。不懂的可以看一下的上面的那个安装配置地址;
#pragma comment(lib,"highgui.lib")
#pragma comment(lib,"ml.lib")
#pragma comment(lib,"cvcam.lib")
#pragma comment(lib,"cvaux.lib")
#pragma comment(lib,"cxcore.lib")   

int main(){
   IplImage * img=0;  //创建一个图片类型的对象(说实话这个东西我也说的不是很清楚反正记得他是用来放图片的把)
  
   img=cvLoadImage(".\\lena.jpg");//导入图片(注意图片的路径 我这是当前目录下注意要用‘\\’表示'\');
   if(!img) {cout<<"fail to load image<<endl";exit(0);} //判断图片是否成功导入;
   int height=img->height;           //获取图片的高;
   int width=img->width;              //获取图片的宽;
   uchar* data=(uchar*)img->imageData;  //获取图片的数据;
   int channels=img->nChannels;          //获取图片的通道数;
   int step=img->widthStep;           //获取图片单行的总字节数;

   cvNamedWindow("win",2);     //创建窗口;
   cvMoveWindow("win",50,50);   //移动窗口;
   
 
   for(unsigned i=0;i<height;i++){
      for(unsigned j=0;j<width;j++)
	  {
		  for(unsigned k=0;k<channels;k++)
        data[i*step+j*channels+k]=255-data[i*step+j*channels+k];  //图片反转;
	  }
   }

   cvShowImage("win",img);  //显示图片;
   cvWaitKey(0);          //等待键入;
   /*如果没有这一句图片就闪一下就关掉了, 这个就是让程序运行到这停下来,这样我们才能看得见图片*/
   
   cvSaveImage(".\\lena_after_transition.jpg",img);//保存图片(我这也是当前目录下)
   cvReleaseImage(&img);  //释放图片;必须释放 不然导致内存泄漏的;
return 0;
}


这是我反转后的效果图;

 

图片的话你们自己弄一张把。就是注意路径哦;

 

如果有问题请联系我 QQ1915699835    email:1915699835@qq.com 

很高兴能与你们交流啊;
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值