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列
我們就達成一個默契:橫向為ROWS縱向為COLS
參考博客網頁:  連結 


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)

接下來  B+G  青色通道


















B+R  紫色通道

















G+R  黃色通道

















希望大家喜歡這篇文章
感謝收看


這次偷偷用了HTML  跑馬燈
<div><marquee onMouseOver="this.stop()" onMouseOut="this.start()">
........
</marquee>
</div>

滑鼠移上去會停喔!!!!

留言

這個網誌中的熱門文章

經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header

經得起原始碼資安弱點掃描的程式設計習慣培養(三)_7.Cross Site Scripting(XSS)_Stored XSS_Reflected XSS All Clients

(2021年度)駕訓學科筆試準備題庫歸納分析_法規是非題