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

编程入门 行业动态 更新时间:2024-10-12 05:55:07

covertTo 和 setTo无法转换mat<a href=https://www.elefans.com/category/jswz/34/1768605.html style=像素类型"/>

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

1.原始问题:

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的像素类型。

参考:

转载于:

更多推荐

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

本文发布于:2024-02-06 03:53:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1746097.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:像素   类型   covertTo   setTo   mat

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!