opencv2_六種色彩通道視訊處理_到底Rows和Colums哪個是行哪個是列(附註:跑馬燈解釋)
這篇我們要來探討如何做出
六種不同分離型的視訊效果
首先我們先開啟 一般視訊
這是一個RGB彩色視訊
如果我們要來分離R、G、B通道 利用opencv2
來撰寫 有沒有比較好寫簡短的寫法呢
思維就是 在讀取 視訊 frame 之後 添加一組 雙重for 迴圈來解決喔
為何是二維的 ????
因為視訊每讀進來的frame 影格 是 二維的 可拆分成
rows // 高 橫 列
cols // 寬 直 行
給個在影像領域的示意圖
在台灣,橫向稱為列,縱向稱為行。-----> 以前學姊教過的一個好記口訣【直行橫列】
在中國大陸,橫向稱為行,縱向稱為列。
在日本也是這樣喔!!!橫向稱為行,縱向稱為列。
我幫各位找了幾張日本學術網站的示意圖
一般生活中如果TQC 或是 從事 Excel 使用的人習慣
橫向為ROWS 縱向為Column
如果覺得很難記中文說法就記英文好了
反正就只是個習慣說法各地不同 將來如果有要去國外深造遊學讀到類似學科還可以用
聽的懂分的清即可。
現在我要來開始顯示不同通道指定該單通道的值為255的變化了
(一)
先來一組 雙迴圈
for (int i = 0; i < frame.rows; i++ ) // 台:橫列 | 中國:橫行
for (int j = 0; j < frame.cols; j++) // 台:直行 | 中國:直列
(二)
再使用Mat類提供的at的方法用於取得圖像上的點
語法 :
Mat frame
frame.at<Vec3b>(i, j) // 取出彩色圖像中i行j列第k通道的顏色點(pixel)
frame.at<uchar>(i, j) // 取出灰度圖像中i行j列的點(pixel)
//注意這是參考中國一位樓主所寫的博客所以說法上是 i行j列
參考博客網頁: 連結
frame.at<Vec3b>(i, j)[0] = .... (0~255任你填) ----->B
frame.at<Vec3b>(i, j)[1] = ... (0~255任你填) ------>G
frame.at<Vec3b>(i, j)[2] = .... (0~255任你填) ------>R
類中可以包含方法
藍通道(B)
綠通道(G)
紅通道(R)
留言
張貼留言