image - 将像素排序为中值过滤器

标签 image opencv image-processing pixel median

我有一个关于如何计算像素值的问题。

例如,我采用 3x3 像素,需要排序并选择 pixel[4] 来应用中值滤波器。

如何计算要订购的这些像素的值?

我是否要对每个 channel (R G B)进行排序,然后选择每个 channel 的中间项并将值放入像素中?

或者我必须对 3 个 channel 求和?

我在网上找到了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()

最佳答案

没有“好的”方法可以将中值滤波器应用于彩色图像。

  • 分别过滤三个平面会创建图像中没有的新颜色,

  • 真正的色彩过滤是通过找到与其他颜色的总距离最小的颜色来实现的;但这很耗时。

关于image - 将像素排序为中值过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54885110/

相关文章:

python - 为图像对比度度量实现直方图扩展

python - 如何在 python 中通过坐标裁剪光栅图像?

php - 根据文本大小调整图像大小

qt - 使用Gstreamer或Phonon或VLC播放器的Qt中的视频播放器

java - ImageMagick 命令缓慢问题

jquery - BXSlider CSS代码不滑动

c++ - OpenCV 图像减法

opencv:视频稳定模块示例对于任何具有不同错误的视频都失败

python - 重新采样表示图像的 numpy 数组

c - Linux 中使用 MMX 进行图像处理