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()
コメント
コメントを投稿