首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从边缘计算缺失像素值

从边缘计算缺失像素值
EN

Stack Overflow用户
提问于 2018-08-27 22:43:00
回答 1查看 202关注 0票数 2

我的示例图像如下:

代码语言:javascript
复制
array([[2, 0, 2, 0, 3, 0],
       [0, 0, 0, 0, 0, 0],
       [2, 0, 2, 0, 4, 0],
       [0, 0, 0, 0, 0, 0],
       [9, 0, 3, 0, 3, 0],
       [0, 0, 0, 0, 0, 0]])

我想要计算所有丢失的像素值,其中0是基于相邻的像素值。

计算丢失像素值的公式如下所示:

如果DN是可用的值,则X是DN采样的值,需要填写。

代码语言:javascript
复制
X01 = 0.5 DN00 + 0.5 DN02

X10 = 0.5 DN00 + 0.5 DN20

X11 = 0.25 DN00 + 0.25 DN02 + 0.25 DN20 + 0.25 DN22

X12 = 0.5 DN02 + 0.5 DN22

X21 = 0.5 DN20 + 0.5 DN22

到目前为止,我已经在图片上尝试了convolve2d

代码语言:javascript
复制
from scipy.signal import convolve2d

kernel =  array([[1. , 0.5, 1. ],
                 [0.5, 1. , 0.5],
                 [1. , 0.5, 1. ]])

convolve2d(a, kernel, boundary='wrap', mode='same')

但产出是不正确的:

代码语言:javascript
复制
array([[ 2. ,  2. ,  2. ,  2.5,  3. ,  2.5],
       [ 2. ,  8. ,  2. , 11. ,  3.5, 11. ],
       [ 2. ,  2. ,  2. ,  3. ,  4. ,  3. ],
       [ 5.5, 16. ,  2.5, 12. ,  3.5, 18. ],
       [ 9. ,  6. ,  3. ,  3. ,  3. ,  6. ],
       [ 5.5, 16. ,  2.5, 11. ,  3. , 17. ]])

我在这里做错什么了?任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-27 22:57:17

你试图用一个不符合你的功能定义的操作来解决这个问题。这不是一个简单的卷积操作;操作取决于窗口的结构。对于给定的a数组,您需要非零元素的平均值。为什么不这样写你的过滤器呢?

您给定的过滤器错误地处理所有东西,除了两个非零项之间的直接点:现有的元素根本不应该改变,但是过滤器将它们切成两半;对于“四个角的中心”条目,过滤器对两个角完全加权,而忽略其他的。

在执行部分更新问题后:

好多了。现在,如果您更改内核以专门处理四角元素的情况,会发生什么,如下所示?

代码语言:javascript
复制
kernel = array([[0.25, 0.5, 0.25],
                [0.5 , 1. , 0.5 ],
                [0.25, 0.5, 0.25]])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52047851

复制
相关文章

相似问题

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