Resmi maske ile boyama
Açıklama: Maskeyi istenilen renkte resmin üstüne çizme.
Girdi: in
-> Resim (renkli veya gri), mask
-> maske (in’le aynı en ve boyda, logical tipinde), color
-> istenilen renk. (opsiyonel, varsayılan değeri sarı)
Çıktı: out
-> Verilen resmin maskenin olduğu yerleri boyanmış hali
Örnekler:
Kenar bulma ve bulunan kenarları kırmızı renk ile boyama.
I = imread('coins.png'); bw = edge(I, 'sobel'); rgb = imageOverlay(I, bw, [1 0 0]); imshow(rgb)
peaks
ile örnek matris oluşturup onu mat2gray
ile [0, 1]
arasındaki değerlere ölçekleme ve bu değerlerin 7′den büyüklerini boyama.
I = peaks(400); mask = I > 7; rgb = imageOverlay(mat2gray(I), mask); imshow(rgb)
English description: Overlaying a mask onto an image with the given color.
Kaynak kod
function out = imageOverlay(in, mask, color) % imageOverlay.m: Maskeyi istenilen renkte resmin üstüne çizme. % % Girdi: in -> Resim (renkli veya gri) % mask -> maske (in'le aynı en ve boyda, logical tipinde) % color -> istenilen renk. (opsiyonel, varsayılan değeri sarı) % Çıktı: out -> Verilen resmin maskenin olduğu yerleri boyanmış hali % % Örnekler: % % % Kenar bulma ve bulunan kenarları kırmızı renk ile boyama. % I = imread('coins.png'); % bw = edge(I, 'sobel'); % rgb = imageOverlay(I, bw, [1 0 0]); % imshow(rgb) % % % peaks ile örnek matris oluşturup onu mat2gray ile [0, 1] arasındaki % % değerlere ölçekleme ve bu değerlerin 7'den büyüklerini boyama % % I = peaks(400); % mask = I > 7; % rgb = imageOverlay(mat2gray(I), mask); % imshow(rgb) % Lütfen orijinal kod için: % http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId= % 10502&objectType=file adresine bakınız. % Renk verilmezse sarı olsun. DEFAULT_COLOR = [1 1 0]; if nargin < 3 color = DEFAULT_COLOR; end % Resim tipleri uint8 olsun. inUint8 = im2uint8(in); colorUint8 = im2uint8(color); % Kırmızı, yesşil ve mavi kanalları oluştur. if ndims(inUint8) == 2 % Resim gri ise tümü aynı. outRed = inUint8; outGreen = inUint8; outBlue = inUint8; else % Resim renkli ise her biri ilgili kanala ait. outRed = inUint8(:,:,1); outGreen = inUint8(:,:,2); outBlue = inUint8(:,:,3); end % Maskedeki yerleri boya. outRed(mask) = colorUint8(1); outGreen(mask) = colorUint8(2); outBlue(mask) = colorUint8(3); % Yeni değerlere sahip kırmızı, yeşil ve mavi kanallardan yeni bir resim oluştur. out = cat(3, outRed, outGreen, outBlue);