首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >等效于Matlab hsv的Opencv Hsv转换

等效于Matlab hsv的Opencv Hsv转换
EN

Stack Overflow用户
提问于 2015-10-04 11:04:23
回答 2查看 824关注 0票数 3

我必须用opencv开发android代码,代码相当于MATLAB。因为我必须读取一个图像并将其转换为HSV,我使用以下方法完成了这一工作:

代码语言:javascript
复制
Imgproc.cvtColor(temp, hsv   , Imgproc.COLOR_RGB2HSV);

当我迭代每个像素值时,返回的像素值在色调的0-255范围内,在Matlab中返回范围为0-1,我不知道如何为它编写等价的代码。我是个初学者,我对图像处理不太了解。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-04 12:37:43

RGB图像的值范围明显为0,255。对于HSV图像,它取决于图像类型(参见OpenCV文档):

  • 8位图像:h在0,180,S,V在0,255
  • 32位图像:h在0,360,S,V在0,1

所以,在你转换到HSV之后

代码语言:javascript
复制
Imgproc.cvtColor(temp, hsv, Imgproc.COLOR_RGB2HSV);

你需要标度H和S,V值不同。您可以使用拆分合并来获取不同的通道矩阵,并进行正确的缩放。

请注意,OpenCV将RGB图像存储为BGR,因此您可能需要COLOR_BGR2HSV

您可以拆分和合并如下:

代码语言:javascript
复制
List<Mat> planes = new ArrayList<Mat>(3);
Core.split(hsv, planes);
// Scale each single plane
Core.merge(planes , hsv);
票数 2
EN

Stack Overflow用户

发布于 2015-10-04 11:34:11

255是1.0,128是0.5,依此类推。将n/255除以得到Matlab的HSV值

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32932759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档