android opencv cvgetsubrect,cvGetCol与cvGetCols 获取列 cvGetSubRect获取图像的矩形区域

 2023-09-16 阅读 28 评论 0

摘要:程序:代码:#include"cv.h"#include"cxcore.h"#include"highgui.h"#includeintGetCol(intargc,char**argv){IplImage*src=cvLoadImage("e:\\picture\\4.jpg");IplImage*dst1=cvCreateImage(cvSize(1,src->height),sr

程序:

14497687ba92154c7a46f1b6299380bf.png

代码:#include "cv.h"

#include "cxcore.h"

#include "highgui.h"

#include 

int GetCol(int argc,char** argv)

{

IplImage* src=cvLoadImage("e:\\picture\\4.jpg");

IplImage* dst1=cvCreateImage(cvSize(1,src->height),src->depth,src->nChannels);

cvZero(dst1);

IplImage* dst2=cvCreateImage(cvSize(20,src->height),src->depth,src->nChannels);

cvZero(dst2);

IplImage* dst3=cvCreateImage(cvSize(30,30),src->depth,src->nChannels);

cvZero(dst3);

cvGetCol(src,(CvMat*)dst1,10);  //获取第十列,注意这里并没有创建内存或者数据的复制,只是让dst1指向第十列

cvGetCols(src,(CvMat*)dst2,10,30);;

cvGetSubRect(src,(CvMat*)dst3,cvRect(10,10,30,30)); //获取图像的矩形区域

cvNamedWindow("src");

cvNamedWindow("dst1");

cvNamedWindow("dst2");

cvNamedWindow("dst3");

cvShowImage("src",src);

cvShowImage("dst1",dst1);

cvShowImage("dst2",dst2);

cvShowImage("dst3",dst3);

cvZero(dst2);            //由于只是让dst2指向源图像特定的列数,所以修改dst2也会修改原图像

cvNamedWindow("src2");

cvShowImage("src2",src);

cvWaitKey(0);

cvDestroyWindow("src");

cvDestroyWindow("dst1");

cvDestroyWindow("dst2");

cvDestroyWindow("dst3");

cvDestroyWindow("src2");

cvReleaseImage(&src);

cvReleaseImage(&dst1);

cvReleaseImage(&dst2);

cvReleaseImage(&dst3);

return 0;

}

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/67710.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息