admin管理员组文章数量:1516870
python对图像去噪
我正试图写一个程序“去噪”图片。我试图只抓取非边界像素,并使用边界像素来设置它的值,但似乎我的算法并没有捕捉到预期的像素(结果我得到了一个搞砸了的图像)。如果我理解正确,n=长度,m=高度(例如行)。我知道我可以用numpy来获得一个3d表示,但这不是我要做的。谁能看出我做错了什么吗?代码如下:from PIL import Image
def DenoiseImage(inputIm, factor, iters):
data = list(inputIm.getdata())
n, m = inputIm.size
data2 = data
for y in range (0, iters):
#operate on pixels that aren't part of the top or bottom row
for x in range (n, ((m-1)*n)-1):
#makes sure x operated on isn't part of the left or right border
if (x-1)%n != 0 and x%n != 0:
#denoise pixel
data[x] = data2[x] +factor*(data2[x-1]+data2[x+1]-4*data[x]+data2[x-n]+data2[x+n])
temp = data2
data2 = data
data = temp
if iters%2==0:
return data2
else:
return data
这是我尝试使用的算法(但是它是为2d表示编写的(显然是用C编写的):
编辑:这是算法背后思想的一种图形化表达,将我所有的艺术天赋发挥到了极致:
记住m是向下的长度,所以在图中m=4,而不是301。在
本文标签: python对图像去噪
版权声明:本文标题:python对图像去噪 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.betaflare.com/biancheng/1707248044a714693.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论