跨颜色通道的 Matlab 图像表面图

Matlab Image Surface plot across color channels

我是图像处理的新手,想使用 surf 绘制颜色通道以研究不同颜色通道中的强度及其峰值,或者它们是否在任何时候被切断或饱和。有人可以告诉我在哪里可以学习如何执行此操作吗?

您可以直接使用 surf 命令来完成此操作。当您将二维数组传递给 surf 时,它使用值作为高度 (z),使用 1:size(data, 2) 作为 x 值,使用 1:size(data, 1) 作为 y 值。

figure
hax = axes;
hold(hax, 'on');

rsurf = surf(img(:,:,1), 'FaceColor', 'r', 'FaceAlpha', 0.5, 'EdgeColor', 'none');
bsurf = surf(img(:,:,2), 'FaceColor', 'b', 'FaceAlpha', 0.5, 'EdgeColor', 'none');
gsurf = surf(img(:,:,3), 'FaceColor', 'g', 'FaceAlpha', 0.5, 'EdgeColor', 'none');

举个例子

img = reshape(parula(16), [4 4 3]);