[英]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.