【第七節(jié)】OpenCV圖像上的算術運算
目標
1、圖像的加法
? ?????????你可以使用函數(shù)CV2 .add()將兩幅圖像進行加法運算,當然也可以直接使.用numpy, res=img1 +img。兩幅圖像的大小,類型必須-致,或者第二個圖像可以使一個簡單的標量值。
注意: OpenCV 中的加法與Numpy的加法是有所不同的。OpenCV 的加法是一種飽和操作,而Numpy的加法是一種模操作。
例如下面的兩個例子:
????????這種差別在你對兩幅圖像進行加法時會更加明顯。OpenCV的結果會更好一點。所以我們盡量使用OpenCV中的函數(shù)。
2、圖像混合
????????這其實也是加法,但是不同的是兩幅圖像的權重不同,這就給人一種混合或者透明的感覺。圖像混合的計算公司如下:
????????通過修改α的值(0→1),可以實現(xiàn)非??岬幕旌?。
????????現(xiàn)在我們把兩幅圖混合在一起。第一幅圖的權重是0.7,第二幅圖的權重是0.3.函數(shù)CV2.addWeighted()可以按下面的公式對圖片進行混合操作。
這里γ的取值為0。
注意:需要混合的兩個圖像像素必須一致。
下面看看結果:

3、按位運算
????????這里包括的按位操作有: AND, OR, NOT, XOR等。當我們提取圖像的一部分,選擇非矩形ROI時這些操作會很有用(下一章你就會明白)。下面的例子就是教給我們如何改變-幅圖的特定區(qū)域。
????????我想把一朵花放到另一幅圖像小舞頭上。如果我使用加法,顏色會改
變,如果使用混合,會得到透明效果,但是我不想要透明。如果他是矩形我可
以象.上一章那樣使用ROI。但是他不是矩形。但是我們可以通過下面的按位運
算實現(xiàn):
顯示效果如下,方便理解,附上兩張原圖:

標簽: