资源描述:
《opencv图像与矩阵简单操作》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、图像与矩阵的操作#include"stdafx.h"#include#include#include//程序所需的头文件//两个自定义的函数,用于实现图像的条件复制,效果见如下附图。IplImage*myCopyImage(IplImage*img,intRow,intCol,intWidth,intHeight);CvMat*myCopyMat(IplImage*img,intRow,intCol,intWidth,intHeight);/*主函数,它会调用本例程中的两个函数进行
2、图像的剪切操作*/int_tmain(intargc,_TCHAR*argv[]){//Step1:打开并显示原始图像,效果见图2啦~~IplImage*img=cvLoadImage("Koala.jpg",-1);//读取图像Koala.jpgcvNamedWindow("Image:",1);//创建一个图像窗口cvShowImage("Image:",img);//显示读取的图像//Step2:运用内部函数复制并显示复制后的图像,效果和图2一样,就是多了个窗口显示这幅图像,为了对比一下而已,所以就不费篇幅啦~~IplImage
3、*copy=cvCloneImage(img);//调用内部函数复制图像cvNamedWindow("Copy",1);//创建一个图像窗口cvShowImage("Copy",copy);//显示复制的图像//Step3:自己编写复制图像块函数,并显示复制的图像块(图像方式),剪切了起始位置(200,200),宽高(300,300)的图像,函数定义看最上面,实现看后面,效果见图3IplImage*Block=myCopyImage(img,200,200,300,300);//自定义条件复制函数复制图像if(Block)//判断是否
4、成功复制{cvNamedWindow("SubImage",1);//创建一个图像窗口cvShowImage("SubImage",Block);//显示复制的图像块cvWaitKey();//等待键盘事件cvDestroyWindow("SubImage");//关闭图像窗口cvReleaseImage(&Block);//清除图像块}//Step4:自己编写复制图像块函数,并显示复制的图像块(矩阵方式),和前面的效果是一样的,但是是对矩阵进行操作,显示的也是矩阵,效果还是图3的样子~~CvMat*a=myCopyMat(img,2
5、00,200,300,300);//自定义条件复制函数复制图像otherstaffoftheCentre.Duringthewar,ZhuwastransferredbacktoJiangxi,andDirectorofthenewOfficeinJingdezhen,JiangxiCommitteeSecretary.Startingin1939servedasrecorderoftheWestNorthOrganization,SecretaryoftheSpecialCommitteeAfterthevictoryofthelo
6、ngMarch,hehasbeentheNorthwestOfficeoftheFederationofStateenterprisesMinister,ShenmufuguSARmissions,DirectorofNingxiaCountypartyCommitteeSecretaryandrecorderoftheCountypartyCommitteeSecretary,Ministersandif(a)//判断是否成功复制{cvNamedWindow("Matrix",1);//创建一个图像窗口cvShowImage("Ma
7、trix",a);//显示复制的图像块cvWaitKey();//等待键盘事件cvDestroyWindow("Matrix");//关闭图像窗口cvReleaseMat(&a);//清除图像块}cvDestroyWindow("Image:");//关闭原图像窗口cvReleaseImage(&img);//清除原图像cvReleaseImage(©);//清除内部函数复制的图像return0;}/*上面就是调用这个函数进行剪切的,通过输入起始位置和图像的宽高就可以剪切你想要的部分,多通道单通道都适用哦~~*/IplImag
8、e*myCopyImage(IplImage*img,intRow,intCol,intWidth,intHeight){intimg_Width=img->width;intimg_Height=img->height