Opncv学习之使用方向滤波器检测边缘
来源:互联网 发布:java map实现内存缓存 编辑:程序博客网 时间:2024/06/07 13:18
Sobel滤波器
void Sobel( InputArray src, OutputArray dst, int ddepth, int dx, int dy, int ksize = 3, double scale = 1, double delta = 0, int borderType = BORDER_DEFAULT );
用索贝尔算子进行边缘检测:
计算X和Y方向上的导数并进行相加得到Sobel滤波器的范式
找到范式的最大值和最小值
将范式转换成8位图像,并进行二值化的到边缘
#include <iostream>#include <iomanip>#include <opencv2/core/core.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <opencv2/highgui/highgui.hpp>int main(){ // Read input image cv::Mat image = cv::imread("D:/1.jpg", 0); if (!image.data) return 0; // Display the image cv::namedWindow("Original Image"); cv::imshow("Original Image", image); // Compute Sobel X derivative cv::Mat sobelX; cv::Sobel(image, sobelX, CV_8U, 1, 0, 3, 0.4, 128); // Display the image cv::namedWindow("Sobel X Image"); cv::imshow("Sobel X Image", sobelX); // Compute Sobel Y derivative cv::Mat sobelY; cv::Sobel(image, sobelY, CV_8U, 0, 1, 3, 0.4, 128); // Display the image cv::namedWindow("Sobel Y Image"); cv::imshow("Sobel Y Image", sobelY); // Compute norm of Sobel cv::Sobel(image, sobelX, CV_16S, 1, 0); cv::Sobel(image, sobelY, CV_16S, 0, 1); cv::Mat sobel; //compute the L1 norm sobel = abs(sobelX) + abs(sobelY); double sobmin, sobmax; cv::minMaxLoc(sobel, &sobmin, &sobmax); // Conversion to 8-bit image // sobelImage = -alpha*sobel + 255 cv::Mat sobelImage; sobel.convertTo(sobelImage, CV_8U, -255. / sobmax, 255); // Display the image cv::namedWindow("Sobel Image"); cv::imshow("Sobel Image", sobelImage); // Apply threshold to Sobel norm (low threshold value) cv::Mat sobelThresholded; cv::threshold(sobelImage, sobelThresholded, 190, 128, cv::THRESH_BINARY); // Display the image cv::namedWindow("Binary Sobel Image (low)"); cv::imshow("Binary Sobel Image (low)", sobelThresholded); // Apply threshold to Sobel norm (high threshold value) cv::threshold(sobelImage, sobelThresholded, 190, 255, cv::THRESH_BINARY); // Display the image cv::namedWindow("Binary Sobel Image (high)"); cv::imshow("Binary Sobel Image (high)", sobelThresholded); cv::waitKey(); return 0;}
阅读全文
0 0
- Opncv学习之使用方向滤波器检测边缘
- 计算图像的拉普拉斯变换,使用方向滤波器检测边缘
- 第六章图像滤波 方向滤波器边缘检测
- Halcon学习之边缘检测函数
- 学习之边缘检测sobel,log,canny
- Opencv学习之图像边缘检测
- Opencv学习之边缘检测方法
- OpenCV学习之Canny边缘检测
- OpenCV入门学习之边缘检测
- opencv学习笔记之5.4使用形态学滤波进行边缘和角点检测
- opencv之边缘检测
- OpenCV 之 边缘检测
- opencv之边缘检测
- OPNCV
- OpenCV学习之旅2—边缘检测技术
- 图像局部特征学习(笔记1之边缘检测)
- opencv学习之读摄像头并用canny边缘检测输出
- 深度学习论文笔记之(一)HED边缘检测
- OpenLayers API 离线地图发布源码示例功能
- 面试必问50题
- C#基础知识之this关键字介绍
- MYSQL触发器的操作
- Hadoop集群安装-企业级
- Opncv学习之使用方向滤波器检测边缘
- [LeetCode]242. Valid Anagram
- 邀请函 | 千视通诚邀您参加2017第十六届深圳安博会
- 探究InnoDB可重复读
- LeetCode 79. Word Search
- 第二阶段velocity框架熟悉
- c语言实现选择排序、冒泡排序、插入排序
- cblas_sgemm 源码讲解
- Spring官网下载所需的jar包