【问题标题】:Adding noise to an image in increments以增量方式向图像添加噪点
【发布时间】:2014-02-23 00:29:30
【问题描述】:

您好,我正在尝试为我创建的 QR 图像添加噪点,这是我目前的代码:

import numpy
import scipy
import scipy.misc
import sys
sys.path.append('M:/PythonMods')
import qrcode

if __name__ == "__main__":
    myqr = qrcode.make("randomtexxxxxxxxxt")
    #myqr.show()
    myqr.save("M:/COMPUTINGSEMESTER2/myqr4.png") 


filename = 'myqr4.png'

imagea = (scipy.misc.imread(filename)).astype(float)

poissonNoise = numpy.random.poisson(50,imagea.shape).astype(float)

noisyImage = imagea + poissonNoise

请有人告诉我如何让它显示嘈杂的图像?以及如何保存图像以便我进行测试?

非常感谢任何帮助。

编辑

我尝试将此代码添加到程序中以使其显示图像:

from PIL import Image
myimage = Image.open(noisyImage)
myimage.load()

但随后出现此错误:

Traceback (most recent call last):
  File "M:\COMPUTINGSEMESTER2\untitled4.py", line 28, in <module>
    myimage = Image.open(noisyImage)
  File "Q:\PythonXY273_MaPS-T.v01\Python27\lib\site-packages\PIL\Image.py", line 1958, in open
    prefix = fp.read(16)
AttributeError: 'numpy.ndarray' object has no attribute 'read'

【问题讨论】:

    标签: python image noise


    【解决方案1】:

    Image.open需要一个图片文件作为参数,使用Image.fromarray:

    im = Image.fromarray(noisyImage)
    im.save("myFile.jpeg")
    

    你也可以使用matplotlib模块直接显示图片:

    import matplotlib.pyplot as plt
    plt.imshow(noisyImage) #Needs to be in row,col order
    

    【讨论】:

    • 感谢您在保存图像方面的帮助。我不确定下一部分,我想展示更改后的图像,什么是矩阵?再次感谢您的帖子
    • 我这样做了:im = Image.fromarray(noisyImage) im.show(noisyImage) 并且成功了!!我很惊讶有些东西真的有效!!它不会在图像附近的任何地方放置噪音,但它可以使用。谢谢你的帮助!!!
    • @user2956523 很高兴为您提供帮助;)
    【解决方案2】:
    scipy.misc.imsave('NoisyImage.jpg', noisyImage)
    

    【讨论】:

    • 感谢您的回复,当我包含上述内容时,它会这样说:NameError: name 'image_array' is not defined
    • 只需将名称更改为您创建的数组的名称,即noisyImage
    猜你喜欢
    • 1970-01-01
    • 2012-07-08
    • 1970-01-01
    • 2014-09-05
    • 1970-01-01
    • 2013-10-17
    • 2019-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多