【OpenCV】将单通道的Mat对象转换为三通道的Mat
生活随笔
收集整理的這篇文章主要介紹了
【OpenCV】将单通道的Mat对象转换为三通道的Mat
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在項目中遇到一個問題,調(diào)用別人編好的庫需要傳入三通道的彩色圖像。但是我的圖像經(jīng)過處理后已經(jīng)是二值化的圖像了,所以得想想辦法了。
分析:三通道的彩色圖像就是R,G,B三個通道,那么將我的單通道黑白圖復制三份merge一下,不就是一張三通道圖像了嘛,只不過有顏色只有黑白,實驗了一下果然可以用了。
代碼實現(xiàn):
/**************************************
// 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& binImg)
{
<span class="hljs-code"> Mat three_channel = Mat::zeros(binImg.rows,binImg.cols,CV_8UC3);</span>
<span class="hljs-code"> vector<Mat> channels;</span>
<span class="hljs-code"> for (int i=0;i<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的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决:vs2013 错误1error M
- 下一篇: vs中.exe运行闪退的解决办法