opencv 把3通道图像转成单通道_小强学Python+OpenCV之-1.4.3图像(矩阵)加减运算
引入
問題引入,考慮以下幾個問題:
Q1. 一個3通道像素p的BGR分量(8bit表示)值均相同,那么這個像素是什么顏色的?
Q2. 該像素p加上自己,即,像素p的各個通道值翻倍,那么這個像素的顏色會變成什么樣?
加法
假設p的BGR值均為100,即p(100, 100, 100)。那么,我們生成一幅100*100大小的3通道圖像,其中每個像素均與p相同。
# 導入庫執行腳本
python arithmetic.py沒錯,是一幅灰度圖像。
我們可以繼續嘗試,加入如下代碼。
# 構造一幅(50, 256, 3) 灰度條執行腳本。
python這和我們的單通道灰度圖像是一致的。
也就是說,
A1. 三通道圖像的每個通道值(強度)相同時,合成的是灰度圖像。
那么,如果將上面的圖像gray的每個像素值加上(100, 100, 100)會怎樣呢?
# 構造圖像,shape為(100, 100, 3) ,每個像素值均為(100, 100, 100)執行腳本。
pythonGray1在Gray的基礎上強度增強了,這是可以理解的,因為,每個像素的強度都增加了(100,100,100)。
那么,為什么Gray2怎么會比其它兩幅都要暗(強度低)呢?
這是因為:
A2. numpy在做加法運算時,會根據dtype對數據進行“取模”運算。也就是說會產生數據的翻轉現象。
而OpenCV在做加法時,會根據數據類型的范圍進行限制。比如這里的圖像通道數據類型是uint8類型的。那么OpenCV限制通道值最大為255,最小為0.而不會像numpy產生200+100=44的現象。
減法
numpy同加法。OpenCV限制通道值下限為0.
例子
# 導入庫執行腳本
參考
【矩陣加減法】
總結
以上是生活随笔為你收集整理的opencv 把3通道图像转成单通道_小强学Python+OpenCV之-1.4.3图像(矩阵)加减运算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 饥荒联机版排箫快捷键(饥荒联机版t键控制
- 下一篇: python-opencv 最快的遍历颜