如何使用 OpenCV 将偏导数高斯核应用于图像?

2023-12-13

我正在尝试重现一篇论文的结果,其中他们将图像与高斯核的水平偏导数进行卷积。我还没有找到任何方法可以用 OpenCV 来实现这一点。那可能吗 ?

我是否必须获得高斯滤波器,然后手动计算偏导数?


正如 @akarsakov 所说,OpenCV 没有为此提供内置函数。不过,我们仍然可以使用OpenCV的getGaussianKernel()然后应用一个因子来获得导数。

由于高斯 2D 内核是可分离的,因此该函数将简单地返回一个 1D 内核,并假设您将沿 x 轴应用 1D 滤波器,然后沿 y 轴应用 1D 滤波器,这比应用 2D 内核更快直接地。

由于您想要水平高斯导数,ref:

enter image description here

你可以简单地乘以-x/sigma^2内核的每个点。

import cv2
import numpy as np
import matplotlib.pyplot as plt

kernel_size = 13
sigma = 0.5
kernel = cv2.getGaussianKernel(kernel_size, sigma, cv2.CV_64F)
print(kernel)

gaussian_first_deriv_x = np.zeros_like(kernel)
assert(kernel_size % 2 == 1) # I assume you are using an odd kernel_size
half_kernel_size = int(kernel_size / 2)
for i in range(kernel_size):
    x = - half_kernel_size + i
    factor = - x/ (sigma**2)
    gaussian_first_deriv_x[i] = kernel[i] * factor

print(gaussian_first_deriv_x)

plt.plot(kernel[:], 'b')
plt.plot(gaussian_first_deriv_x[:], 'r')
plt.show()

enter image description here

现在,您可以使用该内核进行卷积。

注意:如果您使用Python,您也可以使用该函数ndimage.gaussian_filter1d(data, sigma=1, order=1, mode='wrap') from from scipy import ndimage.

OpenCV 默认使用以下内容:sigma = 0.3 * (kernel_size / 2.0 - 1) + 0.8.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 OpenCV 将偏导数高斯核应用于图像? 的相关文章

  • 使用python从gst管道抓取帧到opencv

    我在用着OpenCV http opencv org 和GStreamer0 10 我使用此管道通过自定义套接字通过 UDP 接收 MPEG ts 数据包sockfd由 python 提供并显示它xvimagesink 而且效果很好 以下命
  • 让网络摄像头在 OpenCV 中工作

    我正在尝试让我的网络摄像头在 Windows 7 64 位中的 OpenCV 版本 2 2 中捕获视频 但是 我遇到了一些困难 OpenCV 附带的示例二进制文件都无法检测到我的网络摄像头 最近我发现这篇文章表明答案在于重新编译一个文件 o
  • 选择合适的IDE

    您会推荐使用以下哪种 IDE 语言来在 Windows 下开发涉及识别手势并与操作系统交互的项目 我将使用 OpenCV 库来执行图像处理任务 之后 我将使用 win32 API 或 NET 框架与操作系统交互 具体取决于您建议的工具 性能
  • 未加载库:@rpath/libopenblasp-r0.2.19.dylib

    我应该如何解决这个问题 Monas MacBook Pro 02 02 mona python Python 3 6 1 Anaconda custom x86 64 default May 11 2017 13 04 09 GCC 4 2
  • 提取二值图像中的最中心区域

    我正在处理二进制图像 之前使用此代码来查找二进制图像中的最大区域 Use the hue value to convert to binary thresh 20 thresh thresh img cv2 threshold h thre
  • 旋转矩阵openCV

    我想知道如何找到框架中一组特征的旋转矩阵 我会更具体 我有 2 个具有 20 个特征的帧 假设第 1 帧和第 2 帧 我可以估计两个帧中特征的位置 例如 假设位置 x y 处的某个第 1 帧特征 并且我确切地知道它在哪里 所以假设为 x y
  • 针对不同处理器架构的 Gradle android 构建

    我想使用 Gradle 为 4 个不同的 Android CPU 处理器架构 armeabi armeabi v7a x86 mips 构建 4 个单独的 apk 我有为 4 个 CPU 架构构建的本机 OpenCV 库libs folde
  • 车辆分割和跟踪

    我已经从事一个项目一段时间了 目的是在无人机捕获的视频中检测和跟踪 移动 车辆 目前我正在使用 SVM 该 SVM 接受了从车辆和背景图像中提取的局部特征的特征袋表示的训练 然后 我使用滑动窗口检测方法来尝试定位图像中的车辆 然后我想要跟踪
  • 静态 OpenCV 库中未定义的引用

    我有一个使用 OpenCV 3 1 的 C 项目 并且使用共享库可以正常工作 但现在我想使用静态库 位于项目目录中的文件夹中 来编译它 因为我希望能够在未安装 OpenCV 的情况下导出它 如果需要还可以编辑和重新编译 这次我重新编译了 O
  • 将 CvSeq 保存到数组

    我对 OpenCV 文档有点迷失 我想将 cvFindContours 返回的 CvSeq 保存到一个数组中 据我了解它将返回 CvContour 的 seq 但我找不到它包含的内容 我应该保存其中的哪些部分 稍后我可以迭代它并说调用 cv
  • 在Spyder(Python 3.6)中导入cv2时出现导入错误

    我已经在Windows操作系统中安装了opencv 3 0 0 我已运行该应用程序并已成功将其安装在C 驱动器并还复制了cv2 pyd文件输入C Python27 Lib site packages正如我在几个教程视频中看到的那样 在我的
  • 结果显示图像上有衬里

    我正在使用 opencv 和 android ndk 下面是我的 jni 代码 void Vignete Mat img1 Mat img2 Mat out resize img1 img1 img2 size img1 convertTo
  • 使用 OpenCV 从轮廓获取掩模

    我想从我通过 cv findContours 计算的轮廓 它只存在 1 个轮廓 获取图像掩模 然而 虽然我的轮廓变量不为空 但我无法使用 cv drawContours 检索图像蒙版 我的目标图像始终为空 这是我的代码 img mosaic
  • 如何在 Ubuntu 16.04 上安装适用于 Python 2.7 的 openCV 2.4.13?

    我尝试了很多在线帖子来安装 opencv 但它们不适用于 Ubuntu 16 04 有人可以给我安装 openCV 2 4 13 的步骤吗 我不久前制作了一个脚本 用于安装最新版本的 OpenCV 截至本答案的最后一次更新为 4 2 这是它
  • 在OpenCV Python中编写4通道以上图像

    这对我来说是一个持续的挑战 我正在尝试使用 openCV 将两个 3 RGB 图像组合成一个 6 通道 TIFF 图像 到目前为止我的代码如下 import cv2 import numpy as np im1 cv2 imread im1
  • 如何在 OpenCV 中删除 mouseCallback

    在使用 C 的 OpenCV 中 有没有办法删除 mouseHandler int event int x int y int flags void param 通过函数添加到窗口 image window cv setMouseCallb
  • 如何使用 python cv2 api 将 xy 点格式化为 unactorPoints?

    我在格式化要传递给 unactorPoints 的 x y 点列表时遇到问题 opencv 2 4 1 该错误消息是 C 特定的 并抱怨点数组不是 CV 32FC2 类型 我不应该能够传入 Nx2 numpy 数组吗 import cv2
  • 如何在没有 OpenCv Manager 的情况下运行 OpenCV 代码

    我正在使用 OpenCV4Android 版本 2 4 10 并在 Samsung Galayx GT I9300 上测试我的代码 我遇到的问题是 我必须从 Play 商店下载 Opencv Manager 以便我的 opencv 代码运行
  • 使用 cvcreateimage 使用 opencv 创建简单的黑色图像

    来自 OpenCV 新手的非常基本的问题 我只想创建一个图像 每个像素设置为0 黑色的 我在 main 函数中使用了以下代码 IplImage imgScribble cvCreateImage cvSize 320 240 8 3 我得到
  • 构建 OpenCV 时出错 :: MonitorFromRect 未在此范围内声明

    我试图建立OpenCV version 2 4 8与它一起使用CodeBlocks and MinGw 我按照以下指示进行操作here http kevinhughes ca tutorials opencv install on wind

随机推荐

  • 简单检查 Android 应用程序后台

    我通过从每个活动的 onResume 调用 plusActivity 和从 onPause 调用 minusActivity 来跟踪我的应用程序中当前可见的活动数量 应该是 0 或 1 plus minusActivity 位于我的 myA
  • 如何检查 Android 是否安装了 Facebook

    我正在修改我的应用程序 以便能够捕获用户在未安装 facebook 应用程序 SSO 所需 的情况下尝试发布的情况 这是我正在使用的代码 try ApplicationInfo info getPackageManager getAppli
  • Firebase 存储 downloadURL 文件结构

    所以我使用 firebase 存储来上传我的网站文件 这是目录结构的示例 Project index html css style css js mainScript js 因此 我以这种结构将这些文件上传到 firebase 但我注意到返
  • Php数组数组从名称获取id

    我在 PHP 中有一个如下所示的数组 my array array my array array id gt myid1 name gt myname1 my array array id gt otherid name gt othern
  • 新款 iPhone X 型号有哪些尺寸级别?

    Apple 推出了三款新 iPhone X 机型 iPhone XR XS 和 XS Max 它们的尺寸类别是什么 与其他 iPhone 型号相比如何 我将为每个型号提供三条信息 纵向时的尺寸类别 横向时的尺寸类别以及屏幕分辨率 means
  • 在简单的Python脚本中列出超出范围的索引

    我刚刚开始学习 Python 想要创建一个简单的脚本 从用户输入中读取整数并打印它们的总和 我写的代码是 inflow list map int input split result 1 for i in inflow result inf
  • 付款捕获后调用 Magento 事件观察者

    我试图在订单创建后并在捕获付款后调用观察者 到目前为止我已经尝试过了 checkout submit all after sales order payment place end sales order place after 销售 订单
  • 如何设置段落字符限制?

    我目前有 p event desc p 其中给出了事件的完整描述 有些有很长的描述 而我只想要前 50 个字符 如何才能实现这一目标 尝试这个 fifty chars width 50ch overflow hidden white spa
  • 动画 GIF 帧速率似乎低于预期

    我有一个winforms应用程序 上面有一个 gif 用于让用户了解停滞的进程 问题是它的播放速度比其他应用程序 chrome internet explorer 慢得多 我已经尝试过 gif 了PictureBox and Label但结
  • 在 C# 中,类中的析构函数和 Finalize 方法有什么区别?

    类中的析构函数和 Finalize 方法之间有什么区别 如果有 我最近发现 Visual Studio 2008 认为析构函数与 Finalize 方法同义 这意味着 Visual Studio 不允许您在类中同时定义这两种方法 例如下面的
  • 使用 HttpWebRequest 时,为什么我在某些链接上收到“(304) Not Modified”错误?

    任何想法为什么在我尝试使用 HttpWebRequest 访问的某些链接上我收到 远程服务器返回错误 304 未修改 在代码中 我使用的代码来自杰夫的帖子在这里 该页面似乎消失了 请参阅在 Wayback Machine 上存档副本 请注意
  • Django Apache 错误:没有名为“encodings”的模块。 Windows Server 2008 R2 标准版

    我从 git 克隆 repo 我创建 venv python m venv myenv myenv scripts activate bat pip install r requirements txt pip install mod ws
  • 如何销毁在angular2中使用DynamicComponentLoader创建的所有组件?

    嗨 我发现了一篇关于使用动态组件加载器和处置方法添加和删除组件的帖子 我想一次性销毁所有创建的组件 我有笨蛋demo以及我找到演示的来源Angular 2 动态添加 删除组件 我知道我想存储所有componentref在一个数组中 然后迭代
  • 适用于 OpenGL 的 Android 传感器

    我想让 android 传感器与 opengl 一起工作 将 opengl 的相机旋转到手机指向的任何地方 详细说明一下 如果玩家正在看东方 我希望 opengl 的相机在游戏中也指向东方 如果玩家指向天空 我想将opengl的相机指向天空
  • 如何防止 CSS 关键帧动画在页面加载时运行?

    我有一个 div 其中的内容为动画 container position relative width 100px height 100px border style inset content visibility hidden webk
  • EF 针对 SQL 数据库项目反向 POCO?

    我可以直接针对 SQL 数据库项目使用 EF 反向 POCO 生成器吗 我将 SQL 数据库定义保存在 Visual Studio SQL 数据库项目 中 这为我提供了一些不错的版本控制功能 架构比较和一些漂亮的部署功能 有时我在开发过程中
  • 获取私人 gitlab 存储库

    尽管进行了所有尝试 我还是无法成功使用 go get 从 gitlab 获取私人仓库 我尝试过 netrc gitconfig 但它不起作用 我有一台带有 git 的私人机器 假设它是 mymachine prv git config gl
  • R:更改函数内的级别

    我有一个 data frame 我想更改因子变量的水平 所以我这样做 gt df1 lt data frame id 1 5 fact1 factor letters 1 5 gt head df1 id fact1 1 1 a 2 2 b
  • Windows Batch/解析html网页中的数据

    是否可以使用Windows批处理从Web html页面解析数据 假设我有一个网页 www domain com data page 1 页面源html div a href post view 664654 在这种情况下 我需要从网页获取
  • 如何使用 OpenCV 将偏导数高斯核应用于图像?

    我正在尝试重现一篇论文的结果 其中他们将图像与高斯核的水平偏导数进行卷积 我还没有找到任何方法可以用 OpenCV 来实现这一点 那可能吗 我是否必须获得高斯滤波器 然后手动计算偏导数 正如 akarsakov 所说 OpenCV 没有为此