Image 将像素排序到中值滤波器
我有一个关于如何计算像素值的问题 例如,我使用3x3像素,需要排序并选择Image 将像素排序到中值滤波器,image,opencv,image-processing,pixel,median,Image,Opencv,Image Processing,Pixel,Median,我有一个关于如何计算像素值的问题 例如,我使用3x3像素,需要排序并选择像素[4]以应用中值滤波器 那么,我该如何计算这些像素的顺序值呢 我是否对每个通道(RGB)进行排序,然后选择每个通道的中间项并将值输入像素 或者我必须对3个通道求和 我在python上在线找到了一段带有PIL的代码,但我不明白“members.sort()”函数是如何工作的 def FiltroMediana(path): img = Image.open(path) members = [(0, 0)] * 9 wid
像素[4]
以应用中值滤波器
那么,我该如何计算这些像素的顺序值呢
我是否对每个通道(RGB)进行排序,然后选择每个通道的中间项并将值输入像素
或者我必须对3个通道求和
我在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()
没有“好”的方法将中值滤波器应用于彩色图像
- 分别过滤三个平面会创建图像中没有的新颜色
- 真彩色过滤是通过找到与其他颜色的总距离最小的颜色来实现的;但这很耗时