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