MATLAB Plot Улучшение контрастности? - PullRequest
1 голос
/ 16 мая 2019

У меня есть график, который должен быть усилен контрастом, прежде чем поверх него будет наложен другой график.

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 голосов
/ 22 мая 2019

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)
0 голосов
/ 16 мая 2019

Возьмите изображение с осей (если это изображение!)

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.
...