ホームページ >バックエンド開発 >Python チュートリアル >Pythonでの画像融合・加算演算・画像型変換の実装(コード付き)
この記事の内容は、Python での画像融合、加算演算、画像型変換の実装 (コード付き) であり、一定の参考価値があります。必要な友人が参考になれば幸いです。助けます。
1. Numpy ライブラリの追加
演算方法は、対象画像 = 画像 1 画像 2 で、演算結果は剰余演算となります。 。
1) ピクセル値が 2) ピクセル値が >255 の場合、結果は次のようになります。 result modulo 255 、例: (255 64)%5=64
2.OpenCV 追加操作
別の方法は、OpenCV ライブラリを直接呼び出して画像追加操作を実装することです。方法は以下の通りです。
対象画像 = cv2.add(画像 1, 画像 2)
このときの結果は飽和演算、つまり:
1) ピクセル値 2) ピクセル値 > 255 の場合、結果は 255 になります。例: (255 64) = 255
2 つのメソッドに対応するコードは次のとおりです。
#encoding:utf-8import cv2 import numpy as np import matplotlib.pyplot as plt#读取图片img = cv2.imread('picture.bmp') test = img #方法一: Numpy加法运算result1 = img + test #方法二: OpenCV加法运算result2 = cv2.add(img, test) #显示图像 cv2.imshow("original", img) cv2.imshow("result1", result1) cv2.imshow("result2", result2) #等待显示 cv2.waitKey(0) cv2.destroyAllWindows()
出力結果は次の図に示されています。result1 が最初のメソッド、result2 が 2 番目のメソッドで、さらに白色点 255 があります。
注: 操作に参加する画像のサイズとタイプは一貫している必要があります。以下はカラー画像を追加した結果です。
画像融合とは通常、2 つ以上の画像の情報を 1 つに融合することを指します。画像に関して言えば、融合された画像にはより多くの情報が含まれており、人間が観察したりコンピュータで処理したりするのがより便利になります。下図に示すように、2 つの不鮮明な画像を合成して、より鮮明な画像を取得します。
#画像融合では、画像の加算に基づいて係数と明るさの調整が追加されます。
1) 画像加算: 対象画像 = 画像 1 画像 2
2) 画像融合: 対象画像 = 画像 1 * 係数 1 画像 2 * 係数 2 明るさ調整量
呼び出されるメイン関数は addWeighted メソッドです次のように:
dst = cv2.addWeighter(scr1, alpha, src2, beta, gamma)
dst = src1 * alpha src2 * beta gamma
パラメータガンマは省略できません。
コードは次のとおりです:
#encoding:utf-8import cv2 import numpy as np import matplotlib.pyplot as plt #读取图片 src1 = cv2.imread('test22.jpg') src2 = cv2.imread('picture.bmp') #图像融合 result = cv2.addWeighted(src1, 1, src2, 1, 0) #显示图像 cv2.imshow("src1", src1) cv2.imshow("src2", src2) cv2.imshow("result", result) #等待显示 cv2.waitKey(0) cv2.destroyAllWindows()
下の図に示すように、2 つの RGB 画像のピクセル サイズは同じである必要があることに注意してください。 410×410のものが融合されています。
さまざまな比率の融合を次のように設定します:
result = cv2.addWeighted(src1, 0.6, src2, 0.8, 10)
画像タイプ変換とは、カラー画像からグレースケール画像への変換、BGR の変換など、あるタイプから別のタイプへの変換を指します。画像をRGB画像に変換します。 OPenCV は、200 を超える異なる型の間の変換を提供します。そのうち最も一般的に使用されるものには、次の 3 つのカテゴリが含まれます:
cv2.COLOR_BGR2GRAY
cv2.COLOR_BGR2RGB
cv2.COLOR_GRAY2BGR
コードは次のとおりです。
#encoding:utf-8import cv2 import numpy as np import matplotlib.pyplot as plt #读取图片 src = cv2.imread('01.bmp') #图像类型转换 result = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY) #显示图像 cv2.imshow("src", src) cv2.imshow("result", result) #等待显示 cv2.waitKey(0) cv2.destroyAllWindows()
出力結果は次のとおりです。 :
チャネル変換を使用した場合、結果は次のようになります。
result = cv2.cvtColor(src, cv2.COLOR_BGR2RGB)
画像処理では通常、後続の操作のためにカラー画像をグレースケール画像に変換する必要があります。将来的にはさらに多くの知識が共有される予定です。気に入っていただければ幸いです。特に私は画像認識と画像処理をやっているクラスメートです。
関連する推奨事項:
##Python による画像のグレースケール変換と画像配列の操作
以上がPythonでの画像融合・加算演算・画像型変換の実装(コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。