OpenCV图像滤波(7)cv::getDerivKernels() 函数的使用

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

函数返回用于计算空间图像导数的滤波系数。

该函数计算并返回用于空间图像导数的滤波系数。当 ksize=FILTER_SCHARR 时,生成 Scharr 3x3 核(参见 Scharr)。否则,生成 Sobel 核(参见 Sobel)。这些滤波器通常传递给 sepFilter2D 或其他函数。

这些系数可以用于计算图像的梯度,这对于边缘检测和其他基于梯度的图像处理任务非常重要。

函数原型

cpp 复制代码
void cv::getDerivKernels	
(
	OutputArray 	kx,
	OutputArray 	ky,
	int 	dx,
	int 	dy,
	int 	ksize,
	bool 	normalize = false,
	int 	ktype = CV_32F 
)		

参数

  • 参数kx 输出矩阵,包含行滤波系数。其类型为 ktype。
  • 参数ky 输出矩阵,包含列滤波系数。其类型为 ktype。
  • 参数dx 关于 x 的导数阶数。
  • 参数dy 关于 y 的导数阶数。
  • 参数ksize 孔径大小。它可以是 FILTER_SCHARR、1、3、5 或 7
  • 参数normalize 标志,指示是否归一化(缩放)滤波系数。理论上,系数应该具有分母 =2 * ksize^2 - dx - dy - 2。如果你打算过滤浮点图像,你可能会使用归一化的内核。但是,如果你计算 8 位图像的导数,将结果存储在 16 位图像中,并希望保留所有的小数位,你可能想要设置 normalize=false。
  • 参数ktype 这是指滤波系数的数据类型。它可以是 CV_32F(32 位浮点数)或 CV_64F(64 位浮点数)。

示例代码

cpp 复制代码
#include <iostream>
#include <opencv2/opencv.hpp>

int main( int argc, char** argv )
{
    // 读取图像
    cv::Mat src = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/erik.jpg", cv::IMREAD_GRAYSCALE );

    if ( src.empty() )
    {
        std::cout << "Error: Image cannot be loaded!" << std::endl;
        return -1;
    }
    cv::Size sz2Sh( 400, 600 );

    cv::resize( src, src, sz2Sh, 0, 0, cv::INTER_LINEAR_EXACT );

    imshow( "原图", src );

    cv::Mat dst;

    cv::Mat kx, ky;
    cv::getDerivKernels( kx, ky, 1, 0, 3, false );
    cv::sepFilter2D( src, dst, src.depth(), kx, ky );
    imshow( "sepFilter2D", dst );

    cv::waitKey( 0 );
    return 0;
}

运行结果

参数是cv::getDerivKernels( kx, ky, 1, 0, 3, false )时:

参数是cv::getDerivKernels( kx, ky, 1, 0, 5, false )时:

相关推荐
jinxindeep16 分钟前
CVPR26最佳论文提名:NitroGen,面向通用游戏智能体的 视觉-动作基础模型
人工智能·游戏
小雨下雨的雨4 小时前
井字棋AI机器人实现详解 - Minimax算法实战-鸿蒙PC Electron框架完成
前端·人工智能·算法·华为·electron·鸿蒙
我没胡说八道6 小时前
高校论文AI检测优化工具对比研究与实测分析(2026)
人工智能·深度学习·机器学习·计算机视觉·aigc·论文
秦亚伟6 小时前
AI浪潮重塑融资租赁行业新格局
人工智能
love530love6 小时前
LiveTalking 数字人项目 Windows 部署完全指南(EPGF 架构)
人工智能·windows·python·架构·livetalking·epgf
元启数宇6 小时前
喷淋AI布点实战:8小时人工布点→20分钟自动出图
人工智能
哈哈,柳暗花明6 小时前
人工智能专业术语详解(H)
人工智能·专业术语
圣殿骑士-Khtangc6 小时前
AI 编程工具 2026 实战横评:Cursor 3 vs Claude Code vs Copilot,开发者选型完全指南
人工智能·copilot
云器科技6 小时前
云器Lakehouse 2026年5月版本发布:拥抱 AI Agent,重塑数据智能开发新范式
人工智能
小鹰-上海鹰谷-电子实验记录本6 小时前
第六届党建引领科创生态座谈会 | 邓光辉博士出席分享AI赋能创新药科研新范式
人工智能·ai·电子实验记录本·药企合规