MATLAB Plot对比度增强?

时间:2019-05-16 12:57:59

标签: matlab matlab-figure

我有一个图,在另一个图上叠加之前,需要进行对比增强。

figure
plot(something);
** contrast enhancement **
hold on
plot(something_else);
hold off

在上面的**对比增强**行中,有没有办法做到这一点?我已经研究过 imadjust 函数,但是它需要直接输入图像(tif / jpeg等)。

谢谢。

编辑:示例代码-

figure
plot(ebsd,ebsd.prop.bc);
mtexColorMap black2white
** contrast enhancement **
hold on
plot(ebsd('Forsterite'),ebsd('Forsterite').orientations.angle./degree);
hold off

2 个答案:

答案 0 :(得分:0)

从轴中抓取图像(如果是图像!)

im=getimage(rgb2gary(gca)); %it should already be gray, but matlab returns RGB anyway

并自动调整对比度

im2=imadjust(im);

再次设置

imshow(im2,'Parent',gca); % or whatever other method you are using for display.

答案 1 :(得分:0)

enter image description here我在示例中看到的是,您想要在“微弱”乳白色背景上具有饱和颜色的区域。尝试通过增加饱和度来突出显示此解决方案。

rgb = imread('peppers.png');
% make under-saturated image
hsv = rgb2hsv(rgb);
hsv(:, :, 2) = hsv(:, :, 2)*0.2;
hsv(hsv > 1) = 1;  % Limit values
rgbFaint = uint8(255*hsv2rgb(hsv));
% make a mask of area to highlight
mask = false(size(rgb,1),size(rgb,2));
h = fspecial('disk',60) > 0;
mask(200:200+size(h,1)-1,200:200+size(h,2)-1) = h;
mask = repmat(mask,1,1,3);
% create image with highlight area
rgbHighlight = rgbFaint;
rgbHighlight(mask) = rgb(mask);
figure;
imshow(rgbHighlight)