Skip to content

Instantly share code, notes, and snippets.

@liewsi
Last active December 14, 2015 16:29
Show Gist options
  • Save liewsi/5115887 to your computer and use it in GitHub Desktop.
Save liewsi/5115887 to your computer and use it in GitHub Desktop.
Erguvan
rgbResim = imread('erguvan.jpg');
hsvResim = rgb2hsv(rgbResim); % Resmi HSV uzayına çevir
hKanali = 360.*hsvResim(:,:,1); % Hue (renk) kanalını 0-360 arasında al
% Renk histogramının çizimi
figure
kutuSinirlari = 0:360; % Histogram kutularının sınırları
N = histc(hKanali(:),kutuSinirlari); % Renk histagramını çıkar
hBar = bar(kutuSinirlari(1:end-1),N(1:end-1),'histc'); % Histogramı çiz
set(hBar,'CData',1:360,... % Çubukların renklerini 360 tane
'CDataMapping','direct',... % renk ile güncelle ve kenar
'EdgeColor','none'); % renklendirmesini kaldır
colormap(hsv(360)); % Renk haritasını 360lık hsv yap
axis([0 360 0 max(N)]); % Eksenin sınırlarını değiştir
set(gca,'Color','k'); % Arkaplan rengini siyah yap
set(gcf,'Pos',[50 400 560 200]); % Figürün boyunu güncelle
xlabel('HSV renk (derece cinsinden)');
ylabel('Kutu başına pixel');
sKanali = hsvResim(:,:,2); % Saturation (doygunluk) kanalını al
erguvanOlmayanlar = ... % Erguvan olmayan bölgeleri seç
~(hKanali > 300) & ...
(hKanali < 340);
sKanali(erguvanOlmayanlar) = 0; % Seçilen piksellerin renk doygunluğunu sıfırla
hsvResim(:,:,2) = sKanali; % Doygunluk kanalını güncelle
rgbResim = hsv2rgb(hsvResim); % Resmi RGB uzayına geri çevir
imshow(rgbResim)
imwrite(rgbResim,'erguvan2.jpg')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment