首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将GaussianBlur应用于单个像素

将GaussianBlur应用于单个像素
EN

Stack Overflow用户
提问于 2013-04-21 22:36:18
回答 2查看 2.8K关注 0票数 4

我正在使用OpenCV用C++编写一个应用程序,将高斯滤波器应用于图像中的单个像素。例如,我循环遍历图像中的每个像素,如果它们与特定的RGB值匹配,我希望仅对这些像素应用高斯算法,以便模糊只发生在图像的那些部分周围。

然而,我很难找到这样做的方法。OpenCV库提供的GaussianBlur()函数只允许我模糊整个图像,而不是简单地将算法和内核一次应用于一个像素。有没有人对我如何实现这一点有任何想法(例如,有没有其他我不知道的方法)?我希望我不需要自己编写整个算法来将其应用于单个像素。

EN

回答 2

Stack Overflow用户

发布于 2013-04-22 00:36:02

我的一个朋友想出了一个很好的解决方案:

  • 克隆原始矩阵
  • GaussianBlur()应用于克隆
  • 将每个像素与RGB值
  • 进行比较如果匹配,请将原始像素替换为克隆像素

真不敢相信这有多简单。

票数 4
EN

Stack Overflow用户

发布于 2013-04-21 23:28:44

如果只需要在几个像素上应用高斯模糊,可以自己编写它的代码。这比你想象的要容易得多,而且只需要几行代码。它是一个使用gaussian function作为内核的简单stencil operator。您所需要的就是像素及其邻居的坐标。

其余的都是直接的。下面是高斯矩阵的一个示例,您可以轻松地对其进行编码,或者使用高斯函数生成它:

简而言之,它只是邻近值的加权平均值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16132242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档