covertTo和setTo无法转换mat像素类型

1.原始问题:

创新互联建站自2013年起,是专业互联网技术服务公司,拥有项目成都网站制作、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元荥阳做网站,已为上家服务,为荥阳各地企业和个人服务,联系电话:18982081108

src = imread("**.jpg");
GpuMat srcImg(src);
GpuMat hist;
gpu::calcHist(srcImg,hist)

使用imread载入图像后,

再导入到GpuMat中:

用calcHist处理srcImg时候出现了内存异常。

后来发现是calcHist只能处理CV_8UC1像素类型的图像,但是src的像素不是CV_8UC1。

再尝试使用covertTo和setTo来转换src的像素类型,但是没用成功。

经过调试发现,src的通道是3个。

然后代码修改成以下以后成功:

src = imread("**.jpg",CV_LOAD_IMAGE_GRAYSCALE);
if(src.type != CV_8UC1)
{
    src.covertTo(src,CV_8UC1);
}
GpuMat srcImg(src);
GpuMat hist;
gpu::calcHist(srcImg,hist)

在imread的时候,src存储的就是一张单通道图像。

再使用covertTo转换src的像素类型。

参考:

http://blog.csdn.net/tcm_zhangpeng/article/details/39084103


当前题目:covertTo和setTo无法转换mat像素类型
本文网址:http://bzwzjz.com/article/jpoeoi.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 公司网站建设 网站建设改版 温江网站设计 企业网站建设 成都网站设计 响应式网站设计 温江网站设计 成都网站建设公司 成都网站建设 企业网站设计 成都网站建设公司 成都商城网站建设 成都网站设计公司 成都品牌网站建设 成都网站制作 成都网站建设流程 广安网站设计 成都h5网站建设 网站建设 成都定制网站建设 营销网站建设 高端网站设计推广