OpenCV 画像の足し算

画像の足し算
#画像の足し算は,OpenCVの関数 cv2.add() を使う,
#もしくはNumpyの処理によってビット数,データ型が同じ
#2枚の画像を res = img1 + img2 と足すか,
#res = img + value のように画像全体を明るくする方法があります.
#
#OpenCVとNumpyの足し算は和の値が画素値の上限値を超えた時の処理が異なります.
#OpenCVの cv2.add() 関数を使った場合,上限値を超える和の値は
#res = min(img1+img2, MAX)``の ように打ち切られます.
#一方でNumpyの足し算はモジュロを取った値に ``res = (img1+img2) mod MAX となります.
#
#この現象は2枚の画像を足し合わせた時によりはっきり確認できます.
#OpenCVの足し算を使った方がよい結果になるでしょう.
#常にOpenCVの関数を使うと良いでしょう.

import cv2
import numpy as np

x = np.uint8([250])
y = np.uint8([10])

print( cv2.add(x,y)) # 250+10 = 260 => 255
print( x+y )         # 250+10 = 260 % 256 = 4

img = cv2.imread("img20200312090232.png")
img2 = cv2.imread("img20200310113646.png")

img3 = cv2.add(img,100)

cv2.imshow('image',img3)
cv2.waitKey(0)

img4 = cv2.add(img,img2)

cv2.imshow('image',img4)
cv2.waitKey(0)


cv2.destroyAllWindows()

コメント

このブログの人気の投稿

Python OpenCVとWebカメラでバーコードリーダー

OpenCV3とPython3で形状のある物体の輪郭と方向を認識する(主成分分析:PCA、固有ベクトル)