Image 为什么图像在传递到中值滤波器之前需要转换为灰度?
为什么当我将彩色图像通过中值滤波器时,我会得到一个错误,即预期输入应该是2DImage 为什么图像在传递到中值滤波器之前需要转换为灰度?,image,matlab,image-processing,Image,Matlab,Image Processing,为什么当我将彩色图像通过中值滤波器时,我会得到一个错误,即预期输入应该是2D 这意味着什么?这是有意义的,因为颜色在RGB中的描述方式是3D数组,而灰度是2D数组 RGB不是线性比例,当单独使用时,三个通道会极大地改变颜色光谱。这将在RGB中值滤波器中造成奇怪的颜色效果 如果您考虑如何将中值滤波器应用于RGB,有两种不同的可能性: 独立处理每个通道 将每个像素视为唯一的RGB值 在第一种情况下,中值滤波器会给出奇怪的颜色。重复选择R、G和B值而不考虑其他值将生成与原稿无关的随机颜色 相反,如果您
这意味着什么?这是有意义的,因为颜色在RGB中的描述方式是3D数组,而灰度是2D数组 RGB不是线性比例,当单独使用时,三个通道会极大地改变颜色光谱。这将在RGB中值滤波器中造成奇怪的颜色效果 如果您考虑如何将中值滤波器应用于RGB,有两种不同的可能性:
然而
如果您将数据转换为HSV或L a*b*,则可以对其每个组件进行中值滤波,并将结果转换回RGB。这是有意义的,因为RGB中描述的颜色是3D数组,而不是2D中的灰度 RGB不是线性比例,当单独使用时,三个通道会极大地改变颜色光谱。这将在RGB中值滤波器中造成奇怪的颜色效果 如果您考虑如何将中值滤波器应用于RGB,有两种不同的可能性:
然而
如果将数据转换为HSV或L a*b*,则可以对其每个组件进行中值滤波,并将结果转换回RGB。实际上,在RGB颜色空间中应用中值滤波并不少见 如果目的是删除,则它在RGB颜色空间中运行良好。
您需要单独传递每个颜色通道,而不是将RGB作为输入传递到
medfilt2
Ander Biguri是对的:从数学角度来看,在RGB颜色空间中应用中值滤波器是不正确的。这可能是medfilt2
的Matlab实现不支持它的原因
在RGB颜色空间中应用medfilt2
的示例:
RGB = imread('https://i.stack.imgur.com/G2aNm.png');
figure;imshow(RGB);title('Original');
R = RGB(:, :, 1);
G = RGB(:, :, 2);
B = RGB(:, :, 3);
R = medfilt2(R);
G = medfilt2(G);
B = medfilt2(B);
RGB = cat(3, R, G, B);
figure;imshow(RGB);title('After median filter of each color channel');
原始图像:每个颜色通道中值滤波后的图像:
正如您所看到的,它工作得非常好…实际上,在RGB颜色空间中应用中值滤波器并不少见 如果目的是删除,则它在RGB颜色空间中运行良好。
您需要单独传递每个颜色通道,而不是将RGB作为输入传递到
medfilt2
Ander Biguri是对的:从数学角度来看,在RGB颜色空间中应用中值滤波器是不正确的。这可能是medfilt2
的Matlab实现不支持它的原因
在RGB颜色空间中应用medfilt2
的示例:
RGB = imread('https://i.stack.imgur.com/G2aNm.png');
figure;imshow(RGB);title('Original');
R = RGB(:, :, 1);
G = RGB(:, :, 2);
B = RGB(:, :, 3);
R = medfilt2(R);
G = medfilt2(G);
B = medfilt2(B);
RGB = cat(3, R, G, B);
figure;imshow(RGB);title('After median filter of each color channel');
原始图像:每个颜色通道中值滤波后的图像:
正如您所看到的,它工作得非常好…而在某些情况下,对于小内核窗口,这可能不会引入伪影,但对于任意图像来说,这是一种相对高风险的操作。转换为HSV并返回是一个计算成本非常低的操作,我认为最好保持数学严谨性,并在HSV中使用过滤器是安全的。也就是说,回答得很好。Lenna也必须+1:PNo担心。如果你想找到我,就来看看我吧!虽然在某些情况下,对于小内核窗口,这可能不会引入伪影,但对于任意图像,这是一种相对高风险的操作。转换为HSV并返回是一个计算成本非常低的操作,我认为最好保持数学严谨性,并在HSV中使用过滤器是安全的。也就是说,回答得很好。Lenna也必须+1:PNo担心。如果你想找到我,就来看看我吧!