我正在尝试将彩色图像从 RGB 转换为 HSV(进行更改),然后再转换回 RGB。作为测试,我编写此代码只是为了测试如何从 rgb 到 hsv 返回到 rgb,但是当我查看图像时,它只是显示为黑色。我缺少什么?
*PS我使用的是octave 3.8.1,它的工作方式类似于matlab
Here are the octave 3.8.1 packages I have loaded:
>>> pkg list
Package Name | Version | Installation directory
--------------+---------+-----------------------
control *| 2.6.2 | /usr/share/octave/packages/control-2.6.2
general *| 1.3.4 | /usr/share/octave/packages/general-1.3.4
geometry *| 1.7.0 | /usr/share/octave/packages/geometry-1.7.0
parallel *| 2.2.0 | /usr/share/octave/packages/parallel-2.2.0
signal *| 1.2.2 | /usr/share/octave/packages/signal-1.2.2
specfun *| 1.1.0 | /usr/share/octave/packages/specfun-1.1.0
测试代码如下:
f=imread('/tmp/bump.jpg'); %color image
%Hue - Saturation - Value
f_rgb2hsv=rgb2hsv(f); %convert image to HSV double
f_hsv2rgb=hsv2rgb(f_rgb2hsv);%convert to RGB double
f_to_image=uint8(f_hsv2rgb); %convert to uint8 to see image
imshow(f_to_image);
double
图像的值在 [0,1](浮点)范围内,uint8
范围内的图像[0,2^8-1]
(仅限整数)。使用uint8
您只需将 0 和 1 之间的值转换为 0 和 1,即黑色或接近黑色。
Use im2uint8
or im2double
为了转换图像,这些函数会自动将您的值重新调整到适当的范围。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)