Opencv学习笔记——自建滤波器cvFilter2D
2014-10-18 15:17
423 查看
利用Opencv自带的cvFilter2D来对图像进行卷积计算,具体代码如下:
实验结果如下:
#include "stdio.h" #include "cv.h" #include "highgui.h" int main(int argc, char* argv[]) { IplImage *img=cvLoadImage("Lena.png"); IplImage *p=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,3); /*IplImage* cvCreateImage( CvSize size, int depth, int channels ); 参数说明: size 图像宽、高. depth 图像元素的位深度,可以是下面的其中之一: IPL_DEPTH_8U - 无符号8位整型 IPL_DEPTH_8S - 有符号8位整型 IPL_DEPTH_16U - 无符号16位整型 IPL_DEPTH_16S - 有符号16位整型 IPL_DEPTH_32S - 有符号32位整型 IPL_DEPTH_32F - 单精度浮点数 IPL_DEPTH_64F - 双精度浮点数 channels: 每个元素(像素)通道号.可以是 1, 2, 3 或 4.通道是交叉存取的,例如通常的彩色图像数据排列是: b0 g0 r0 b1 g1 r1 ... 虽然通常 IPL 图象格式可以存贮非交叉存取的图像,并且一些OpenCV 也能处理他, 但是这个函数只能创建交叉存取图像*/ float k[9]={1,-2,1,2,-4,2,1,-2,1}; CvMat km=cvMat(3,3,CV_32FC1,k); /*初始化矩阵的方法 double a[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; CvMat Ma=cvMat(3, 4, CV_64FC1, a); 另一种方法: CvMat Ma; cvInitMatHeader(&Ma, 3, 4, CV_64FC1, a); */ cvFilter2D(img,p,&km,cvPoint(-1,-1)); /* void cvFilter2D( const CvArr* src, CvArr* dst, const CvMat* kernel, CvPoint anchor=cvPoint(-1,-1)); #define cvConvolve2D cvFilter2D src 输入图像. dst 输出图像. kernel 卷积核, 单通道浮点矩阵. 如果想要应用不同的核于不同的通道,先用 cvSplit 函数分解图像到单个色彩通道上,然后单独处理。 anchor 核的锚点表示一个被滤波的点在核内的位置。 锚点应该处于核内部。缺省值 (-1,-1) 表示锚点在核中心。 函数 cvFilter2D 对图像进行线性滤波,支持 In-place 操作。当核运算部分超出输入图像时,函数从最近邻的图像内部象素差值得到边界外面的象素值。 */ cvNamedWindow("ImageShow",CV_WINDOW_AUTOSIZE); cvShowImage("ImageShow",p); cvWaitKey(0); printf("Hello World!\n"); return 0; }
实验结果如下:
相关文章推荐
- OpenCV学习笔记09--通过cvPtr2D或指针算法绘制图形
- opencv学习笔记:RotatedRect和CvBox2D的角度疑云
- 我的OpenCV学习笔记(10):空域滤波之锐化滤波器
- OpenCV学习笔记09--通过cvPtr2D或指针算法绘制图形
- OpenCV学习笔记(13)OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑
- iOS开发之opencv学习笔记四:使用feature2d识别图片
- OpenCV学习笔记(四十六)——FAST特征点检测features2D
- OpenCV中滤波器学习笔记(一)--CvSepFilter
- OpenCV学习笔记(六) 滤波器 形态学操作(腐蚀、膨胀等)
- OpenCV学习笔记——图像处理之滤波器ImgProc
- OpenCV学习笔记——2维特征Feature2D,SURF
- OpenCV学习笔记(6):滤波filter2D()
- opencv学习笔记(5)----滤波器
- OPENCV学习笔记(1)
- OpenCV学习笔记
- 图像绘制功能【OpenCV学习笔记5】
- opencv学习笔记(1):DirectShow在vs2008+Vista中的使用
- 图像的像素点操作【OpenCV学习笔记3】
- 文件的保存【OpenCV学习笔记4】
- OpenCV 学习笔记