我对如何计算像素值有疑问。
例如,我拍摄3x3像素,需要排序并选择pixel[4]
以应用中值滤镜。
那我该如何计算这些像素的值呢?
我要对每个通道(R G B)排序,然后选择每个通道的中间项并将其值放入像素中吗?
还是我必须对三个通道求和?
我在python上在线找到了带有PIL的代码,但是我不理解“ members.sort()”函数的工作原理
def FiltroMediana(path):
img = Image.open(path)
members = [(0, 0)] * 9
width, height = img.size
newimg = Image.new("RGB", (width, height), "white")
for i in range(1, width - 1):
for j in range(1, height - 1):
members[0] = img.getpixel((i - 1, j - 1))
members[1] = img.getpixel((i - 1, j))
members[2] = img.getpixel((i - 1, j + 1))
members[3] = img.getpixel((i, j - 1))
members[4] = img.getpixel((i, j))
members[5] = img.getpixel((i, j + 1))
members[6] = img.getpixel((i + 1, j - 1))
members[7] = img.getpixel((i + 1, j))
members[8] = img.getpixel((i + 1, j + 1))
members.sort()
newimg.putpixel((i, j), (members[4]))
newimg.save("MedianFilterPIL.png", "PNG")
newimg.show()
答案 0 :(得分:2)
没有“不错”的方法将中值滤镜应用于彩色图像。
分别过滤三个平面会创建图像中没有的新颜色,