欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 人文社科 > 生活经验 >内容正文

生活经验

【OpenCV】将单通道的Mat对象转换为三通道的Mat

发布时间:2023/11/27 生活经验 50 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【OpenCV】将单通道的Mat对象转换为三通道的Mat 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

在项目中遇到一个问题,调用别人编好的库需要传入三通道的彩色图像。但是我的图像经过处理后已经是二值化的图像了,所以得想想办法了。
分析:三通道的彩色图像就是R,G,B三个通道,那么将我的单通道黑白图复制三份merge一下,不就是一张三通道图像了嘛,只不过有颜色只有黑白,实验了一下果然可以用了。
代码实现:

/**************************************
//  Method:    convertTo3Channels
//  Description: 将单通道图像转为三通道图像
//  Returns:   cv::Mat 
//  Parameter: binImg 单通道图像对象
**************************************/
<span class="hljs-strong">*****</span><span class="hljs-strong">*****</span><span class="hljs-strong">*****</span><span class="hljs-strong">*****</span><span class="hljs-strong">*****</span><span class="hljs-strong">*****</span><span class="hljs-strong">*****</span><span class="hljs-strong">*****</span><span class="hljs-strong">*****</span><span class="hljs-emphasis">***</span>*/
Mat convertTo3Channels(const Mat&amp; binImg)
{
<span class="hljs-code">    Mat three_channel = Mat::zeros(binImg.rows,binImg.cols,CV_8UC3);</span>
<span class="hljs-code">    vector&lt;Mat&gt; channels;</span>
<span class="hljs-code">    for (int i=0;i&lt;3;i++)</span>
<span class="hljs-code">    {</span>
<span class="hljs-code">        channels.push_back(binImg);</span>
<span class="hljs-code">    }</span>
<span class="hljs-code">    merge(channels,three_channel);</span>
<span class="hljs-code">    return three_channel;</span>
}

转载自

总结

以上是生活随笔为你收集整理的【OpenCV】将单通道的Mat对象转换为三通道的Mat的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。