简体   繁体   English

为什么在为图像中的像素赋值时,它会在 Python 中产生垃圾

[英]Why when assigning a value to a pixel in image it gives garbage in Python

I'm implementing Average Filter on an image but when i'm assigning a value for a pixel it gives a lot of garbage Here's my code我正在图像上实现平均过滤器,但是当我为像素分配一个值时,它会产生很多垃圾 这是我的代码

def AvergaeFilter():
    ImageToWork = cv2.imread('D:\Y3T2\Brain Tumor\BrainTumourGray.jpg')
    w = ImageToWork.shape[0]
    h = ImageToWork.shape[1]
    for i in range(2,700):
        for j in range(2,700):
            Total = ((ImageToWork[i][j])+(ImageToWork[i][j+1])+(ImageToWork[i+1][j-1])+(ImageToWork[i+1][j])+((ImageToWork[i+1][j+1])+(ImageToWork[i][j-1])+(ImageToWork[i-1][j+1])+(ImageToWork[i-1][j-1])+(ImageToWork[i-1][j])))/9
            ImageToWork[i][j] = Total
    cv2.imwrite('D:\Y3T2\Brain Tumor\BrainGrayTest.jpg', ImageToWork)

When i print(Total) it gives a value but when i run the code for an image it gives a garbage like this.当我打印(总计)时,它给出了一个值,但是当我运行图像的代码时,它给出了这样的垃圾。

图片

The updated Code [Working now]更新后的代码 [现在工作]

def AverageFilter():
ImageToWork = cv2.imread('D:\Y3T2\Brain Tumor\BrainGrayNoise.jpg', cv2.IMREAD_GRAYSCALE)
ImageToOut = ImageToWork.copy()
height = ImageToWork.shape[0]
width = ImageToWork.shape[1]
for i in np.arange(3, height-3):
    for j in np.arange(3, width-3):    
        Temp = 0  
        for k in np.arange(-3, 4):
            for l in np.arange(-3, 4):
                Value = (ImageToWork.item(i+k, j+l))
                Temp = Temp + Value
            Temp = Temp//9
        ImageToOut.itemset((i,j), Temp)
        #Temp = 0

cv2.imwrite('D:\Y3T2\Brain Tumor\BrainGrayAverageFilter.jpg', ImageToOut)

You can replace你可以更换

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM