画像をぼかすOpenCVPythonプログラム?
OpenCVは、画像処理に最適なPythonパッケージの1つです。また、信号にノイズが付随しているように、画像にも主にソース自体(カメラセンサー)からのさまざまな種類のノイズが含まれています。 Python OpenCVパッケージは、ぼかしとも呼ばれる画像スムージングの方法を提供します。これが、このセクションで行うことです。一般的な手法の1つは、画像のぼかしにガウスフィルター(Gf)を使用することです。これにより、画像のシャープなエッジが滑らかになり、ぼやけが最小限に抑えられます。
構文
cv.GaussianBlur(src, ksize, sigmaX[, dst[, sigmaY[, borderType=BORDER_DEFAULT]]] )
ここで-
-
src –入力画像
-
dst –出力画像
-
ksize –ガウスカーネルサイズ[高さ幅]。 ksizeが[00]に設定されている場合、ksizeはシグマ値から計算されます。
-
sigmaX – X軸(水平方向)に沿ったカーネル標準偏差。
-
sigmaY – Y軸(垂直方向)に沿ったカーネル標準偏差。
-
ボーダータイプ –カーネルが画像の境界に適用されている間にiageの境界を指定します。可能な値は、cv.BORDER_CONSTANT、cv.BORDER_REPLICATE、cv.BORDER_REFLECT、cv.BORDER_WRAP、cv.BORDER_DEFAULT、cv.BORDER_ISOLATED、cv.BORDER_TRANSPARENTなどです。
以下は、OpenCVパッケージを使用して画像をガウスぼかしするプログラムです。
import cv2 import numpy # read image src = cv2.imread('LionKing.jpeg', cv2.IMREAD_UNCHANGED) # apply guassian blur on src image dst = cv2.GaussianBlur(src,(3,3),cv2.BORDER_DEFAULT) # display input and output image cv2.imshow("Gaussian Blur",numpy.hstack((src, dst))) cv2.waitKey(0) # waits until a key is pressed cv2.destroyAllWindows() # destroys the window showing image
結果
2つの画像はほぼ同じように見えます(元の/ぼやけています)。次に、カーネルサイズを増やして、結果を観察しましょう。
dst = cv2.GaussianBlur(src,(13,13),cv2.BORDER_DEFAULT)
これで、2つの画像が明確に区別されます。
-
PythonでOpenCVを使用したテンプレートマッチング
テンプレートマッチングは、パッチまたはテンプレートを実際の画像からマッチングできる手法です。これは基本的にパターンマッチングメカニズムです。 PythonにはOpenCVモジュールがあります。 openCVを使用すると、一致するものを簡単に見つけることができます。したがって、この問題では、OpenVCテンプレートマッチング手法が使用されます。 OpenCV機能を使用するには、 pipを使用してダウンロードする必要があります 。 sudo pip3 install opencv-python テンプレートマッチングタスクには、精度係数があります。この係数はしきい値と呼ばれます。一例とし
-
PythonOpenCvモジュールを使用したヒストグラムの等化
これは、画像のヒストグラムを使用してコントラスト調整を行う画像処理の方法です。 実際、この方法は通常、多くの画像のグローバルコントラストを増加させます。特に、画像の使用可能なデータが近いコントラスト値で表される場合、この調整により、強度をヒストグラム上でより適切に分散でき、ローカルコントラストの低い領域が可能になります。より高いコントラストを得る。 OpenCVにはこれを行う関数cv2.equalizeHist()があり、その入力は単なるグレースケール画像であり、出力はヒストグラム均等化された画像です。 この手法は、画像のヒストグラムが特定の領域に限定されている場合に適しています。強度の