关于IPPI中 ippiRGBToHSV

youxia000 2008-06-06 09:58:56
他的参数 Ipp<datatype>* pSrc 是C3R的,哪么输出数据是 什么样的, 分别代表了HSV的三个量是 0-255 还是 0-240

我想只转化一个点用这个是不是有点浪费?
...全文
157 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
youxia000 2008-06-13
  • 打赏
  • 举报
回复
说句题外的,21:28:36 发表 难道intel 也加班??
youxia000 2008-06-13
  • 打赏
  • 举报
回复
ok 了

搞定。多谢,结了
intel_cyu 2008-06-12
  • 打赏
  • 举报
回复
<如果我调用他,源是C3R的 RGB a*b大小 哪么我要给目标申请多大的空间 是 LineStep*b 的byte 么>?

是的,注意,LineStep >=3*a 的大小(每个点有RGB 3个byte, LineStep>=3*a)
youxia000 2008-06-10
  • 打赏
  • 举报
回复
十分感谢楼上的回答,

那个伪代码我看了, 我就是没想明白C3那应该是3个byte 的 大小来表示一个点的 HSV 三个分量,每个分量是一个byte 这里就是用无符号的也只有0-255啊,但是在伪代码中S 似乎需要是浮点的,H 0-360 的,我在想怎么能存到byte里
如果我调用他,源是C3R的 RGB a*b大小 哪么我要给目标申请多大的空间 是 LineStep*b 的byte 么

我用这个伪代码修改了下,H 映射到0-240 S 也是映射到0-240

算是特殊应用吧,我要修改几个点颜色的亮度,而不改变颜色,就是把 RGB转HSV, 修改V 在转回RGB 只有几个点的,不是一个图像的
intel_cyu 2008-06-09
  • 打赏
  • 举报
回复
楼主, 有些好奇,为什么只要转换一个点的? 是特殊的应用背景, 还是由于程序数据结构限制,只能够一个点一个点的去转换...
intel_cyu 2008-06-09
  • 打赏
  • 举报
回复
输出数据也是C3格式: H S V H S V H S V....

IPP 中有关于RGBToHSV 转换有些特殊,可以看ipp 文档的说明。可以用下面的伪代码表示:
// Value:
V = max(R,G,B);
// Saturation:
temp = min(R,G,B);
if V = 0 then // achromatics case
S = 0// H = 0
else // chromatics case
S = (V - temp)/V
// Hue:
Cr = (V - R) / (V - temp)
Cg = (V - G) / (V - temp)
Cb = (V - B) / (V - temp)
if R = V then H = Cb - Cg
if G = V then H = 2 + Cr - Cb
if B = V then H = 4 + Cg - Cr
H = 60*H
if H < 0 then H = H + 360

如果只有一个点,调用函数的性能不好。转换整个图像,才有较好的性能。

567

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧