当前位置: 首页 > wzjs >正文

网站开发遇到的难题百度风云榜电视剧排行榜

网站开发遇到的难题,百度风云榜电视剧排行榜,企业邮箱域名怎么写,活动网站操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::gapi::SobelXY 函数是 OpenCV 的 G-API 模块中用于同时计算图像在 X 和 Y 方向上的一阶导数(即 Sobel 边缘检测)的一…
  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

cv::gapi::SobelXY 函数是 OpenCV 的 G-API 模块中用于同时计算图像在 X 和 Y 方向上的一阶导数(即 Sobel 边缘检测)的一个便捷函数。此函数返回一个包含两个 GMat 的 std::tuple,分别代表 X 方向和 Y 方向的导数结果。

使用扩展的 Sobel 算子计算一阶、二阶、三阶或混合图像导数。
在所有情况下(除了一个),使用 ksize×ksize 可分离核来计算导数。当 ksize = 1 时,使用 3×1 或 1×3 核(即,不进行高斯平滑)。ksize = 1 仅可用于计算一阶或二阶 x- 或 y- 导数。

还有一个特殊的值 ksize = FILTER_SCHARR (-1),对应于 3×3 Scharr 滤波器,它可能比 3×3 Sobel 滤波器提供更准确的结果。Scharr 孔径为
[ − 3 0 3 − 10 0 10 − 3 0 3 ] \begin{bmatrix} -3 & 0 & 3 \\ -10 & 0 & 10 \\ -3 & 0 & 3 \end{bmatrix} 31030003103
用于 x 导数,或者转置后用于 y 导数。
该函数通过将图像与适当的核卷积来计算图像导数:
dst = ∂ x o r d e r + y o r d e r src ∂ x x o r d e r ∂ y y o r d e r \texttt{dst} = \frac{\partial^{xorder+yorder} \texttt{src}}{\partial x^{xorder} \partial y^{yorder}} dst=xxorderyyorderxorder+yordersrc
Sobel 算子结合了高斯平滑和微分,因此结果对噪声具有某种程度的抵抗性。通常,该函数被调用为 (xorder = 1, yorder = 0, ksize = 3) 或 (xorder = 0, yorder = 1, ksize = 3),以计算一阶 x 或 y 图像导数。第一种情况对应于以下核:
[ − 1 − 2 − 1 0 0 0 1 2 1 ] \begin{bmatrix} -1 & -2 & -1 \\ 0 & 0 & 0 \\ 1 & 2 & 1 \end{bmatrix} 101202101
第二种情况对应于以下核:
[ − 1 0 1 − 2 0 2 − 1 0 1 ] \begin{bmatrix} -1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1 \end{bmatrix} 121000121
注意:
第一个返回的矩阵对应于 dx 导数,而第二个对应于 dy。
如果硬件支持,则会进行向最近偶数的舍入;如果不支持,则舍入到最近。
函数文本ID是 “org.opencv.imgproc.filters.sobelxy”

函数原型

std::tuple<GMat, GMat> cv::gapi::SobelXY
(const GMat &  	src,int  	ddepth,int  	order,int  	ksize = 3,double  	scale = 1,double  	delta = 0,int  	borderType = BORDER_DEFAULT,const Scalar &  	borderValue = Scalar(0) 
) 		

参数

  • 参数 src: 输入图像。
  • 参数 ddepth: 输出图像深度,参见组合;对于8位输入图像,导数可能会被截断。
  • 参数 order: 导数的阶数。
  • 参数 ksize: 扩展 Sobel 核的大小;必须为奇数。
  • 参数 scale: 计算导数值的可选比例因子;默认情况下,不应用缩放(详情参见 cv::getDerivKernels)。
  • 参数 delta: 在存储到 dst 前添加到结果中的可选增量值。
  • 参数 borderType: 像素外推方法,参见 cv::BorderTypes。
  • 参数 borderValue: 在常量边界类型的情况下的边界值。

代码示例

#include <opencv2/gapi/gkernel.hpp>
#include <opencv2/gapi/imgproc.hpp>
#include <opencv2/opencv.hpp>int main()
{// 读取输入图像cv::Mat src = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/Lenna.png", cv::IMREAD_GRAYSCALE );if ( src.empty() ){std::cerr << "无法读取图像" << std::endl;return -1;}// 定义G-API网络cv::GMat in;auto sobelXY = cv::gapi::SobelXY( in, CV_16S, 1 );  // 计算X和Y方向的一阶导数cv::GComputation comp( cv::GIn( in ), cv::GOut( std::get< 0 >( sobelXY ), std::get< 1 >( sobelXY ) ) );// 应用到源图像并获取结果cv::Mat sobelX, sobelY;comp.apply( cv::gin( src ), cv::gout( sobelX, sobelY ) );// 将结果转换为 CV_8U 并进行归一化以便显示cv::Mat sobelXAbs, sobelYAbs;cv::convertScaleAbs( sobelX, sobelXAbs );  // 转换为 CV_8U 并取绝对值cv::convertScaleAbs( sobelY, sobelYAbs );  // 转换为 CV_8U 并取绝对值// 显示结果cv::imshow( "Original Image", src );cv::imshow( "Sobel X", sobelXAbs );cv::imshow( "Sobel Y", sobelYAbs );cv::waitKey( 0 );return 0;
}

运行结果

在这里插入图片描述

http://www.dtcms.com/wzjs/462533.html

相关文章:

  • 龙岗营销网站建设公司哪家好女教师遭网课入侵视频大全集
  • 学做蛋糕有哪些网站营销百度app下载手机版
  • 免费建网站家谱系统google关键词优化
  • 深圳网站建设设计bt磁力bt天堂
  • 网站可以用ai做吗最新经济新闻
  • 新网做网站流程怎么做一个小程序
  • 为学校建设网站色盲测试图第五版
  • 苏州建网站提网店推广运营策略
  • 沈阳专业网站建设公司品牌推广方案范文
  • 建设网站团队快速优化网站排名的方法
  • 网页版游戏排行榜回合制重庆seo优化效果好
  • 订阅号怎么做免费的视频网站吗windows优化软件哪个好
  • 安徽网站建设大全百度网盘seo优化
  • 俄罗斯邪恶做a视频网站优化seo
  • 什么是电子商务系统网站seo哪家好
  • 做o2o平台网站需要多少钱aso优化软件
  • 重装的系统没有wordpress汕头网站排名优化
  • 网站系统繁忙产品线上推广方式都有哪些
  • 做淘宝客网站详细步骤晋江友情链接是什么意思
  • 注册网站会员违法网站优化排名网站
  • 郑州影楼网站建设erp123登录入口
  • 中国著名十大vi设计案例百度seo刷排名网址
  • 便捷网站建设百度大全下载
  • 虚拟主机多网站电子制作网站
  • 网站建设哪些公司好网站收录量
  • 可以做动漫的网站中国突然宣布大消息
  • 做网站需要多少钱百度链接收录
  • wordpress评分管理插件seo查询站长工具
  • 大良网站建设服务旺道seo软件技术
  • 广州建站哪个济南兴田德润实惠吗百度会员登录入口