首页 > 代码库 > 卷积(convolution) cvFilter2D
卷积(convolution) cvFilter2D
核心函数:cvFilter2D
原理:
核的中心对准源图像的像素,源图像和核的相对应元素分别相乘并全部相加,得到的值为目标图像核心的值;对于边界则默认用最边界的元素值填充出一个虚拟外边界(相当于调用cvCopyMakeBorder,cvFilter2D内置这个函数)
程序:
代码:
#include "cv.h" #include "cxcore.h" #include "highgui.h" #include <iostream> int convolution(int argc,char** argv) { IplImage* src=http://www.mamicode.com/cvCreateImage(cvSize(10,10),8,1); //源图像,注意只有CV_8UC1的类型可以修改其中的值,如果为float则不能用cvSet,cvZero或者直接用for语句修改其中的值"srcMat:"<<std::endl; for(int rows=0;rows<src->height;rows++) { uchar *data=http://www.mamicode.com/(uchar*)(src->imageData+rows*src->widthStep);" "; } std::cout<<std::endl; } std::cout<<"kernelMat:"<<std::endl; for(int rows=0;rows<kernel.height;rows++) { float *data=http://www.mamicode.com/(float*)(kernel.data.ptr+rows*kernel.step);" "; } std::cout<<std::endl; } std::cout<<"ConvolutionDstMat:"<<std::endl; for(int rows=0;rows<dst->height;rows++) { uchar *data=http://www.mamicode.com/(uchar*)(dst->imageData+rows*dst->widthStep);" "; } std::cout<<std::endl; } return 0; }
本文出自 “flyclc” 博客,请务必保留此出处http://flyclc.blog.51cto.com/1385758/1539833
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。