首先先声明本人也是刚刚开始学习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
很高兴能与你们交流啊;