OpenCV卷积操作
来源:互联网 发布:微信公众号淘宝客制作 编辑:程序博客网 时间:2024/06/03 12:55
卷积操作,是各种图像处理的基础,原理不难,在这里不做赘述,网络上已经有了很多很好的例子,在这里直接上代码。
注意代码中两种的方法的使用及注意事项。
OpenCV卷积函数:
void cvFilter2D( const CvArr* src,
CvArr* dst,
const CvMat* kernel,
CvPoint anchor=cvPoint(-1,-1)
);
#include <cv.h>#include <highgui.h>using namespace std;int main(){IplImage* src1=cvLoadImage("D:\\Korea Documents\\Pictures\\Wallpaper\\Attitude.jpg");IplImage* src=cvCreateImage(cvSize(700,400),src1->depth,src1->nChannels);cvResize(src1,src);IplImage* dst=cvCloneImage(src);/*Kernal的两种建立方式*///1.cvmSet不支持分数!!!CvMat *k1;k1=cvCreateMat(3,3,CV_32FC1);/*cvmSet(k1,0,0,1/16);cvmSet(k1,0,1,2/16);cvmSet(k1,0,2,1/16);cvmSet(k1,1,0,2/16);cvmSet(k1,1,1,4/16);cvmSet(k1,1,2,2/16);cvmSet(k1,2,0,1/16);cvmSet(k1,2,1,2/16);cvmSet(k1,2,2,1/16);*/cvmSet(k1,0,0,0.0625); cvmSet(k1,0,1,0.125); cvmSet(k1,0,2,0.0625); cvmSet(k1,1,0,0.125); cvmSet(k1,1,1,0.25); cvmSet(k1,1,2,0.125); cvmSet(k1,2,0,0.0625); cvmSet(k1,2,1,0.125); cvmSet(k1,2,2,0.0625);//这种方法很方便!!/*float k1[9]={1,2,1,2,4,2,1,2,1};for(int i=0;i<9;i++){k1[i]=(float)k1[i]/16;}CvMat k2=cvMat(3,3,CV_32F,&k1);*/cvFilter2D(src,dst,k1);//卷积操作cvNamedWindow("src");cvNamedWindow("dst");cvShowImage("src",src);cvShowImage("dst",dst);cvWaitKey(0);cvReleaseImage(&src); cvReleaseImage(&dst); cvDestroyAllWindows(); return 0;}
测试结果:
0 0
- OpenCV卷积操作
- opencv基本操作 图像的卷积
- 图像的卷积 以及opencv基本操作
- 计算机视觉篇:一:opencv的基本操作,卷积。
- opencv基础操作及图像的卷积与滤波
- OpenCV学习笔记-卷积
- OPENCV图像卷积运算
- opencv卷积滤波cvFilter2D
- OpenCV卷积核
- opencv图像处理-卷积
- opencv——卷积
- OpenCV:卷积运算
- opencv矩阵的卷积
- 利用OpenCV的filter2D函数作图像的卷积操作和协相关操作
- 卷积神经网络的卷积操作
- 详解卷积反卷积操作
- OpenCV学习笔记-卷积边界
- opencv图像处理8-卷积
- 【BZOJ】【P1307&P1318】【题解】【max_element】
- 抽象类 接口
- CodeForces 55D Beautiful numbers (数位DP)
- c++开源库大全
- XStream解析xml和json
- OpenCV卷积操作
- java 连接 jdbc
- [LeetCode OJ]Search a 2D Matrix
- Jquery优化
- Android-ActionBar(下)
- 3.工厂方法模式
- Qt打印
- 排序算法之冒泡排序
- unity学习之标签