how can i covert rgb image to HSI and separate the intensity component alone
8 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I want to separate intensity components from an rgb image by converting it to HSI space
0 comentarios
Respuestas (2)
DGM
el 14 de Mayo de 2021
Editada: DGM
el 4 de Nov. de 2021
If you just want the intensity (as in HSI) of an image:
ipict = mean(rgbpict,3);
If instead you want value (as in HSV)
vpict = max(rgbpict,[],3);
or if you want lightness (as in HSL)
lpict = min(rgbpict,[],3)/2 + max(rgbpict,[],3)/2;
If you want luma (as in YIQ, YUV, YPbPr, YCbCr, etc)
factors = permute([0.299 0.587 0.114],[1 3 2]); % Rec 470/601 (analog/digital SD video)
%factors = permute([0.2126 0.7152 0.0722],[1 3 2]); % Rec 709 (HDTV video)
ypict = sum(bsxfun(@times,rgbpict,factors),3);
If you want L* lightness (as in CIELAB, CIELUV)
Lpict = rgb2lightness(rgbpict); % introduced in R2019a
otherwise, you can use LAB conversion tools to extract it if you're running something older.
0 comentarios
Ver también
Categorías
Más información sobre Import, Export, and Conversion en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!