【问题标题】:Converting image using matlab / octave from rgb to hsv back to rgb使用matlab / octave将图像从rgb转换为hsv回到rgb
【发布时间】: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


【解决方案1】:

double 图像的值在 [0,1] 范围内(浮点数),uint8 图像在 [0,2^8-1] 范围内(仅整数)。使用 uint8,您只需将 0 和 1 之间的值转换为黑色或接近黑色的 0 和 1。

使用im2uint8im2double 转换图像,这些功能会自动将您的值重新缩放到适当的范围。

【讨论】:

  • 谢谢,但这需要我无法访问的图像工具箱/图像包。还有其他方法吗?
  • @RickT 你为什么不自己做...?只需乘以 255。或尝试imshow(f_to_image,[]);
  • @kkuilla 我会,但我不确定要乘以什么。我知道 RGB 是 0-255,但如果 HSV 是小数并且我乘以 1-255,我仍然会留下一个数字和一个小数。一个简单的例子会有所帮助。
  • @kkuilla imshow(f_to_image,[]);仍然显示黑色图像
  • @RickT:许多缺失函数的标准答案。获取octave,复制m文件,修复语法(基本上用end替换endfunction,endswitch等),使用它。
猜你喜欢
  • 2010-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多