opencv实现sobel边缘检测
来源:互联网 发布:linux 电池管理 编辑:程序博客网 时间:2024/06/02 22:51
void sobel(InputArray src, OutputArray dst, int ddepth, int dx, int dy, int ksize=3, double scaler - 1, double delta=0, int borederType = BORDER_DEFAULF)
函数解析:
ddepth输出图像的深度,dx是x方向的导数,dy是y方向的导数;ksize是sobel内核的大小,设置为奇数,默认是3.scale为可选的所犯导数的比例常数。delta为可选的增量常数,被叠加到导数中,borderType用于判断图像的边界模式
代码如下:
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/opencv.hpp"
#include "opencv2/core/core.hpp"
#include <iostream>
#include "opencv2/photo/photo.hpp"
using namespace std;
using namespace cv;
int main()
{
cv::Mat srcImage = cv::imread("C:\\Users\\LP\\Desktop\\C++\\ConsoleApplication4\\ConsoleApplication4\\1.jpg");
if (srcImage.empty())
{
return -1;
}
cv::Mat srcGray;
cvtColor(srcImage, srcGray, CV_BGR2GRAY);
cv::imshow("srcGray", srcGray);
//定义边缘图,水平及垂直
cv::Mat edgeMat, edgeXMat, edgeYMat;
//计算x和Y方向的Sobel边缘
Sobel(srcGray, edgeXMat, CV_16S, 1, 0, 3, 1, 0, BORDER_DEFAULT);
Sobel(srcGray, edgeYMat, CV_16S, 0, 1, 3, 1, 0, BORDER_DEFAULT);
//线性变换,转换输入数组元素为8位无符号整形
convertScaleAbs(edgeXMat, edgeXMat);
convertScaleAbs(edgeYMat, edgeYMat);
//两个方向边缘叠加
addWeighted(edgeXMat, 0.5, edgeYMat, 0.5, 0.0, edgeMat);
cv::imshow("edgeMat", edgeMat);
//定义Scharr边缘图像
cv::Mat edgeMats, edgeXMats, edgeYMats;
Scharr(srcGray, edgeXMats, CV_16S, 1, 0, 1, 0, BORDER_DEFAULT);
Scharr(srcGray, edgeYMats, CV_16S, 0, 1, 1, 0, BORDER_DEFAULT);
//线性变换,转换输入数组元素为8为无符号整形
convertScaleAbs(edgeXMats, edgeXMats);
convertScaleAbs(edgeYMats, edgeYMats);
addWeighted(edgeXMats, 0.5, edgeYMats, 0.5, 0.0, edgeMats);
cv::imshow("edgeMats", edgeMats);
cv::waitKey(0);
return 0;
}
阅读全文
0 0
- opencv实现sobel边缘检测
- Sobel边缘检测的OpenCV实现
- OpenCV使用Sobel滤波器实现图像边缘检测
- opencv中用Sobel算子进行边缘检测
- 【OpenCV】边缘检测:Sobel、拉普拉斯算子
- opencv中用Sobel算子进行边缘检测
- 【OpenCV】边缘检测:Sobel、拉普拉斯算子
- 【OpenCV】边缘检测:Sobel、拉普拉斯算子
- opencv之边缘检测(sobel )
- opencv边缘检测Sobel和Canny
- 【OpenCV】边缘检测、梯度计算 Sobel Mat
- 【OpenCV】边缘检测:Sobel、拉普拉斯算子
- OpenCV 边缘检测:Sobel、拉普拉斯算子
- 【OpenCV】边缘检测:Sobel、拉普拉斯算子
- OPENCV入门教程十八:Sobel边缘检测
- 【OpenCV】边缘检测:Sobel、拉普拉斯算子
- C/C++ OpenCV之Sobel边缘检测
- OpenCv之边缘检测Sobel算子
- ASP.NET MVC 远程下载文件
- 在macOS Sierra dock栏中增加钥匙串访问
- 每段时间Android开发10个知道(基础系列)-170602
- STM32-SPI之OLED
- opencv实现canny边缘提取
- opencv实现sobel边缘检测
- opencv图像污点修复
- C#连接MySql数据库的方法
- 利用CNN实现手写体识别
- 虚方法在游戏开发中的使用
- 排队系统拥塞控制的位置
- 机器学习算法线上部署方法
- 程序员编程艺术:第十章、如何给10^7个数据量的磁盘文件排序
- 之江学院2017ACM 校赛Problem D: qwb与神奇的序列