clc;
clear;
close all;
workspace;
fontSize = 20;
rgbImage = imread('capture.png');
subplot(2, 2, 1);
imshow(rgbImage);
axis on;
title('Original Image', 'FontSize', fontSize);
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0.05, 1, .95]);
set(gcf, 'Name', 'Demo by ImageAnalyst', 'NumberTitle', 'Off')
HSV = rgb2hsv(rgbImage);
subplot(2, 2, 2);
imshow(HSV);
title('HSV Image', 'FontSize', fontSize);
hold on
hueImage = HSV(:,:,1);
satImage = HSV(:,:,2);
valueImage = HSV(:,:,3);
final_x = 270;
final_y = 250;
theta = 0 : 0.01 : 2*pi;
radius = 35;
X = radius * cos(theta) + final_x;
Y = radius * sin(theta) + final_y;
plot(X, Y, 'm-', 'LineWidth', 2);
[rows, columns] = size(hueImage);
mask = poly2mask(X, Y, rows, columns);
subplot(2, 2, 3);
imshow(mask);
title('Mask Image', 'FontSize', fontSize);
hueImage(mask) = 0.5;
satImage(mask) = satImage(mask) + 0.01 * 4;
valueImage(mask) = valueImage(mask) + 0.01 * 3;
hueImage(hueImage>1)=1; hueImage(hueImage<0)=0;
satImage(satImage>1)=1; satImage(satImage<0)=0;
valueImage(valueImage>1)=1; valueImage(valueImage<0)=0;
HSV(:,:,1) = hueImage;
HSV(:,:,2) = satImage;
HSV(:,:,3) = valueImage;
newRGBImage = hsv2rgb(HSV);
subplot(2, 2, 4);
imshow(newRGBImage);
title('Altered Image', 'FontSize', fontSize);
Best Answer