ホームページ >バックエンド開発 >Python チュートリアル >Python を使用して画像の形状を再構成する方法
Python を使用して画像の形状を再構成する方法
はじめに: 画像処理はコンピューター ビジョンの分野で重要なタスクであり、画像の形状の再構成もその 1 つです。そのうちのキーテクノロジーの一つ。この記事では、Python を使用して画像の形状を再構成する方法をコード例とともに紹介します。
1. 準備
画像形状を再構成する前に、Python の画像処理ライブラリ OpenCV をインストールする必要があります。次のコマンドを使用して端末にインストールできます:
pip install opencv-python
2. 画像を読み取ります
まず、処理する画像を読み取る必要があります。これは、次のコードで実現できます。
import cv2 # 读取图片 img = cv2.imread('image.jpg') # 显示图片 cv2.imshow('Original Image', img) cv2.waitKey(0) cv2.destroyAllWindows()
このコードでは、cv2.imread
関数を使用して画像を読み取り、次に cv2.imshow## を使用します。 # 読み取り値を画像に表示する関数。
cv2.waitKey(0) は、任意のキーを押して画像ウィンドウを閉じるのを待つことを意味します。
形状を再構築する前に、画像に対して前処理を実行する必要があります。これには、グレースケール、二値化、その他の操作が含まれます。これは、次のコードで実現できます。
import cv2 # 读取图片 img = cv2.imread('image.jpg') # 灰度化 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 图像二值化 ret, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY) # 显示二值化后的图片 cv2.imshow('Binary Image', binary) cv2.waitKey(0) cv2.destroyAllWindows()このコードでは、
cv2.cvtColor 関数を使用して BGR イメージをグレースケール イメージに変換し、その後
cv2 を使用します。 .threshold関数はグレースケール画像を 2 値化します。
cv2.THRESH_BINARY は、しきい値より大きいピクセルを前景として使用し、しきい値より小さいピクセルを背景として使用することを意味します。
形状再構成を行う際には、OpenCV が提供する輪郭検出機能を利用して、画像内の輪郭を抽出して描画することができます。これは、次のコードで実現できます。
import cv2 # 读取图片 img = cv2.imread('image.jpg') # 灰度化 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 图像二值化 ret, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY) # 轮廓检测 contours, hierarchy = cv2.findContours(binary, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) # 在原图上绘制轮廓 cv2.drawContours(img, contours, -1, (0, 255, 0), 2) # 显示绘制轮廓后的图片 cv2.imshow('Contours Image', img) cv2.waitKey(0) cv2.destroyAllWindows()このコードでは、まず
cv2.findContours 関数を使用して、バイナリ化された画像に対して輪郭検出を実行します。
cv2.RETR_TREE は、すべての輪郭を抽出し、輪郭間の階層関係を確立することを意味し、
cv2.CHAIN_APPROX_SIMPLE は、輪郭の保存方法が変曲点情報のみを保存することを意味します。次に、
cv2.drawContours 関数を使用して、検出された輪郭を元の画像上に描画します。
この記事では、Python を使用して画像の形状を再構成する方法を紹介し、対応するコード例も示します。上記の手順を通じて、画像内の形状を認識して再構築し、後続の画像処理タスクの基礎を築くことができます。この記事が画像処理分野の学習に役立つことを願っています。
以上がPython を使用して画像の形状を再構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。