如何在matlab中计算过滤的弯曲度?

如何在matlab中计算过滤的弯曲度?,matlab,Matlab,我有两个变量: 包含原始图像的图像 FilteredImage,它是已过滤的图像 两者都是RGB图像。我知道如何计算二维图像的弯曲度 Image = unread('C:\Users\klass\Pictures\man.jpeg'); NoiseImage = minimise(Image,'gaussian'); ImageFiltered = NoiseImage; for c = 1 : 3 ImageFiltered (:, :, c) = medfilt2(NoiseIm

我有两个变量:

  • 包含原始图像的图像
  • FilteredImage,它是已过滤的图像
两者都是RGB图像。我知道如何计算二维图像的弯曲度

Image = unread('C:\Users\klass\Pictures\man.jpeg');
NoiseImage = minimise(Image,'gaussian');
ImageFiltered = NoiseImage;
for c = 1 : 3
    ImageFiltered (:, :, c) = medfilt2(NoiseImage(:, :, c) [3, 3]
end
Bending = norm(im2double(Image - FilteredImage))/norm(im2double(FilteredImage)) * 100;
当我尝试使用此公式计算数字时,我得到以下错误:

使用norm时出错
输入必须是二维的


我尝试将三维图像传递给
norm()
函数。解决方法是通过
rgb2gray()
函数将每个图像转换为二维。 因此,我使用以下公式:

Bending = norm(im2double(rgb2gray(Image) - rgb2gray(FilteredImage)) / norm(im2double(rgb2gray(Image))) * 100

什么是
过滤(图像)
?这应该是
FilteredImage
?是的,您是对的。您的语句还缺少两个右括号。请发一个帖子,这会让你更容易理解到底发生了什么。在MATLAB中,
norm
使用2D输入计算矩阵范数,您不太可能希望将其应用于图像。你想计算的范数是多少?每个RGB值?