有没有办法将轮廓图的内容作为图像矩阵获取?我只想栅格化整个图形的内容,而不是轴、标签和空白区域。
我的目标是在灰度图像上叠加一个透明的彩色等高线图,我看不到另一种方式,因为 MATLAB 每个图形只有一个颜色图。
有没有办法将轮廓图的内容作为图像矩阵获取?我只想栅格化整个图形的内容,而不是轴、标签和空白区域。
我的目标是在灰度图像上叠加一个透明的彩色等高线图,我看不到另一种方式,因为 MATLAB 每个图形只有一个颜色图。
文档中的示例frame2im
:
Create and capture an image using getframe and frame2im:
peaks %Make figure
f = getframe; %Capture screen shot
[im,map] = frame2im(f); %Return associated image data
if isempty(map) %Truecolor system
rgb = im;
else %Indexed system
rgb = ind2rgb(im,map); %Convert image data
end
不是对这个问题的直接回答,但这是我认为你可以实现目标的方式:
%# load in grayscale image
gray_im = rgb2gray(imread('peppers.png'));
%# converting n x m grey image to n x m x 3 rgb gray image
rgb_gray_im = cat( 3, gray_im, gray_im, gray_im );
%# displaying this image
imshow( rgb_gray_im );
%# plotting contourf on top with arbitrary colourmap
hold on
h = axes('position', [0.5, 0.5, 0.2, 0.2]);
z = peaks;
contourf(h, z, [min(z(:)), -6 : 8]);
这给出了结果:
该图的颜色图正在用于轮廓图。背景图像不依赖于颜色图,而是以真彩色显示 - 即每个像素都显示为 rgb_gray_im 中定义的 RGB 值。