python对图像去噪_基于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编写的):http://pastebin.com/teEeUgFj

编辑:这是算法背后思想的一种图形化表达,将我所有的艺术天赋发挥到了极致:

oeQ45.jpg

记住m是向下的长度,所以在图中m=4,而不是301。在

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值