【发布时间】:2015-07-21 16:26:39
【问题描述】:
我正在尝试将彩色图像从 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);
【问题讨论】:
-
请您发布一些示例数据......
-
@kkuilla 我已将bump.jpg 图像作为您请求的示例数据及其上方的测试代码附加到问题中。
-
如果没有 Octave 的镜像包,你如何运行
rgb2hsv?我不能…… -
@kkuilla 奇怪我做了 pkg list 以显示安装了哪些软件包并将其添加到上面的问题中......它可能是手动添加的或包含在另一个包中......我有研究它以找出... octave sourceforge 网站目前已关闭,但当它备份时,我会看看
-
我不知道,但我认为按照 Daniel 的建议执行
f2= im2uint8(f_hsv2rgb);会好得多。这让我在测试时恢复了原始图像。
标签: matlab octave rgb matlab-figure hsv