中值滤波,均值滤波,边缘检测,角点检测,基于opencv(Median filter, mean filter, edge detection, corner detection, based on OpenCV).doc

中值滤波,均值滤波,边缘检测,角点检测,基于opencv(Median filter, mean filter, edge detection, corner detection, based on OpenCV).doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中值滤波,均值滤波,边缘检测,角点检测,基于opencv(Median filter, mean filter, edge detection, corner detection, based on OpenCV)

中值滤波,均值滤波,边缘检测,角点检测,基于opencv(Median filter, mean filter, edge detection, corner detection, based on OpenCV) #包含iostream #包括简历。” #包括 highgui。” 使用名称空间; 布尔filterav(IplImage *图像,int k); 布尔filterav2(IplImage *图像,int k); 布尔filtermid(IplImage *图像,int k); 布尔filtermid2(IplImage *图像,int k); 布尔featuretrack(IplImage *图像); 布尔edgetrack(IplImage *图像,threshold1 int,int threshold2); int main(int argc、argv char * [ ])/指变量的个数argc,argv指向字符变量* { IplImage * img = 0; 高度、宽度、步骤、通道; *数据的函数; / /载入图像 / / img = cvloadimage(“opencvdemo .jpg”,0);//转化为单通道,灰度图像5 img = cvloadimage(“opencvdemo .jpg”,0); 如果(!IMG) { printf(“无法加载图像文件:%s \n”、“opencvdemo .jpg”); 出口(0); } / /获取图像数据 高度= IMG -高度; IMG -宽度宽度=; 步= IMG - widthstep; IMG - nchannels渠道=; 数据=(函数*)IMG -数据; printf(“处理一% DX %d %d通道图像”,高度、宽度、通道); / /创建窗口 cvnamedwindow(“mainwin”,cv_window_autosize); cvmovewindow(“mainwin”,100100);//移动窗口,以屏幕左上角的起点的偏移量 / / filterav2(1mg,3); / / filterav(1mg,3); / / filtermid(1mg,3); / / filtermid2(1mg,3); / / filterav(1mg,3); featuretrack(IMG); / / edgetrack(IMG,60,80); / /显示图像 cvshowimage(“mainwin”,IMG); /等待一把钥匙 (0)cvwaitkey; /释放图像 cvreleaseimage(与IMG); 返回0; } 布尔filterav(IplImage *图像,int k) { //均值滤波 IplImage *形象= cvcreateimage(cvsize(图像-图像-宽度,高度),图像-深度,1); 函数指针(函数*)形象-数据;/ /申请形象图像空间 int m =(k-1)/ 2; 为(int x = M;x<图像- height-m;+ + x) 为(y = m;y<图像- width-m;+ + y) { 国际sumdata = 0; 对于(int i=m;i<1;+ i) 用于(int j=m;j<1;+ j) { // K为奇数,计算K×K区域的灰度和 sumdata + =(int)((函数*)图像-图像)[(x +我)*图像- widthstep + Y + ]; } P [ x *图像- widthstep + Y ] = sumdata /(k); } 图像= cvcloneimage(形象);/ /拷贝给原图像 cvreleaseimage(与形象);/ /销毁临时变量 返回true; } 布尔filterav2(IplImage *图像,int k) { //调用cvSmooth函数实现 dstimage IplImage * = 0; dstimage = cvcreateimage(cvgetsize(图像),图像-深度,1); cvSmooth(图像,dstimage,cv_blur,k,k); / / cv_blur在3×3大小进行均值滤波 图像= cvcloneimage(dstimage); cvreleaseimage(与dstimage); 返回true; } 布尔filtermid(IplImage *图像,int k) { //中值滤波函数 IplImage *形象= cvcreateimage(cvsize(图像-图像-宽度、高度), 图像深度 1; * imagepix =函数(函数*)形象-数据; int m =(k-1)/ 2; 为(int x = M;x<图像- heigh

您可能关注的文档

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档