Azzera filtri
Azzera filtri

Average value of H in HSV of a picture

1 visualizzazione (ultimi 30 giorni)
Xiaochao
Xiaochao il 10 Set 2012
I was asked to divide a jpg picture to several parts with equal area. And I need to get average value of H in HSV of the picture. I want to know how to get the average value of H.

Risposta accettata

Jan
Jan il 10 Set 2012
Modificato: Jan il 10 Set 2012
Calculate the mean over 4x4 blocks:
RGB = rand(100, 200, 3);
HSV = rgb2hsv(RGB);
H = HSV(:, :, 1);
meanH = mean(H(:));
BlockH = reshape(H, 4, 25, 4, 50);
meanBlockH = reshape(sum(sum(H, 1), 3), 25, 50) / 16;
Care about the overflow, when you use UINT8 images.
  3 Commenti
Xiaochao
Xiaochao il 11 Set 2012
I have a picture of 640*480 pixels. I want to divide it to 16*16 blocks and get average value H of every block. The result shoud be a 40*30 array. But I tried mean function, the result always is a 1*16 array.
Jan
Jan il 11 Set 2012
Exactly as shown in my example:
BlockH = reshape(H, 16, 40, 16, 30);
meanBlockH = reshape(sum(sum(H, 1), 3), 40, 30) / 256;

Accedi per commentare.

Più risposte (1)

Sean de Wolski
Sean de Wolski il 10 Set 2012
doc blockproc

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by