(代码6)卷积

来源:互联网 发布:运行单独的java文件 编辑:程序博客网 时间:2024/05/20 16:35

卷积

#include <cv.h>  #include <highgui.h>  using namespace cv;  int main()  {  IplImage *src;IplImage *dst; float k[9]={-1, -1, -1,          -1, 8, -1,   -1, -1, -1};  CvMat mb;  mb=cvMat(3,3,CV_32FC1,k);  src=cvLoadImage("lena.jpg");  dst = cvCreateImage(cvGetSize(src),IPL_DEPTH_8U,3);  cvNamedWindow("src");  cvShowImage("src",src);  cvNamedWindow("filtering");  cvFilter2D(src,dst,&mb,cvPoint(-1,-1));  cvShowImage("filtering",dst);  cvWaitKey(0);  cvReleaseImage(&src);  cvReleaseImage(&dst);  return 0;  }  

Filter2D
对图像做卷积 

void cvFilter2D( const CvArr* src, CvArr* dst,const CvMat* kernel,CvPoint anchor=cvPoint(-1,-1));
src 
输入图像. 
dst 
输出图像. 
kernel 
卷积核, 单通道浮点矩阵. 如果想要应用不同的核于不同的通道,先用 cvSplit 函数分解图像到单个色彩通道上,然后单独处理。 
anchor 
核的锚点表示一个被滤波的点在核内的位置。 锚点应该处于核内部。缺省值 (-1,-1) 表示锚点在核中心。 
函数 cvFilter2D 对图像进行线性滤波,支持 In-place 操作。当核运算部分超出输入图像时,函数从最近邻的图像内部象素插值得到边界外面的象素值。

原创粉丝点击