opencv轮廓检测之椭圆检测-----算法篇(2)---Sobel---自定义卷积核问题
来源:互联网 发布:js 禁用y轴滑动 编辑:程序博客网 时间:2024/05/17 08:06
上一篇讲了怎么用sobel算子获取边缘, 本篇要讲opencv怎么自定义卷积核
还是以sobel算子为例
sobel算子
#include <opencv2/opencv.hpp>
#include <iostream>
int main(int argc, char ** argv)
{
if(argc < 2)
return -1;
cv::Mat img = cv::imread(argv[1],0);
cv::Mat dst1 , dst2, dst3 ,dst;
cv::Matx33f kernelx(-1,0,1,
-2,0,2,
-1,0,1);
cv::Matx33f kernely(-1,-2,-1,
0, 0, 0,
1, 2, 1);
cv::flip(kernelx,kernelx,-1);
cv::flip(kernely,kernely,-1);
// cv::sepFilter2D(img,dst,CV_64F,kernelx,kernely);//kernel.type() == DataType<DT>::type && (kernel.rows == 1 || kernel.cols == 1)) in RowFilter
cv::filter2D(img,dst1,-1,kernelx);
cv::filter2D(img,dst2,-1,kernely);
dst3 = dst1 + dst2;
cv::filter2D(img,dst,-1,kernelx);
cv::filter2D(dst,dst,-1,kernely);
cv::namedWindow("dst1",cv::WINDOW_AUTOSIZE);
cv::namedWindow("dst2",cv::WINDOW_AUTOSIZE);
cv::namedWindow("dst3",cv::WINDOW_AUTOSIZE);
cv::namedWindow("dst",cv::WINDOW_AUTOSIZE);
cv::imshow("dst1",dst1);
cv::imshow("dst2",dst2);
cv::imshow("dst3",dst3);
cv::imshow("dst",dst);
for(;;)
{
if(cv::waitKey(0)==27)
break;
}
return 0;
}
可以看到效果和算法篇(1)有些相反
而我在定义卷积核后进行了180度旋转.
而根据这个教程http://docs.opencv.org/2.4/doc/tutorials/imgproc/imgtrans/sobel_derivatives/sobel_derivatives.html
判断使用 卷积核 在使用前并不需要进行翻转
(上一篇中处理dst有错误, 请忽略吧)
0 0
- opencv轮廓检测之椭圆检测-----算法篇(2)---Sobel---自定义卷积核问题
- opencv轮廓检测之椭圆检测-----算法篇(3)--Sobel
- opencv轮廓检测之椭圆检测-----算法篇(1)
- opencv轮廓检测之椭圆检测-----算法篇(4)--Canny
- opencv轮廓检测之椭圆检测-----算法篇(12)--RANSAC
- opencv轮廓检测之椭圆检测-----算法篇(9)--检测椭圆的其他算法
- opencv轮廓检测之椭圆检测-----算法篇(8) Hough transformation检测椭圆
- opencv轮廓检测之椭圆检测-----算法篇(7)--Hough transform检测圆
- opencv轮廓检测之椭圆检测
- opencv轮廓检测之椭圆检测-----算法篇(10)--FindContours函数算法解释
- opencv轮廓检测之椭圆检测-----算法篇(11)--fitEllipse算法解释
- opencv轮廓检测之椭圆检测-----算法篇(5)---LAPLACIAN算子
- opencv轮廓检测之椭圆检测-----算法篇(6)--ACTIVE CONTOURS
- opencv轮廓检测并绘制椭圆
- OpenCV之轮廓检测
- 皮肤检测椭圆轮廓
- OpenCV图像边缘检测(sobel算法)
- opencv 皮肤检测 椭圆模型+轮廓去噪
- 【转】Oracle中 NLS_DATE_FORMAT的设置方法
- java 对文件操作 文件(夹)新建、复制、删除、移动
- B+ Tree vs B Trees
- Android Studio 常用快捷键记录
- Missing required libmysql_e.dll
- opencv轮廓检测之椭圆检测-----算法篇(2)---Sobel---自定义卷积核问题
- 解决redhat自带yum不能用的问题 (借用CentOS)
- 二叉树中和为某一定值的路径
- int,long,long long范围
- HDU 1698 Just a Hook (线段树,区间更新)
- Cookie解释以及原理分析
- Application类注释
- 复杂链表的复制
- 工具使用之Github的SSH配置