ホームページ >バックエンド開発 >Python チュートリアル >Python を使用して OpenCV で画像をトリミングする方法: Numpy スライスと getRectSubPix?
Python を使用して OpenCV で画像をトリミングする方法
画像処理において、トリミングは画像から特定の領域を抽出する基本的な操作です。 Python の一般的なコンピューター ビジョン ライブラリである OpenCV は、numpy スライスや getRectSubPix などの関数を含む、トリミングのためのさまざまな方法を提供します。
トリミングに numpy スライスを使用する
最も単純で、 OpenCV で画像をトリミングする最も簡単な方法は、numpy スライスを使用することです。 Numpy 配列は OpenCV の画像を表し、スライス操作を使用して配列の特定の領域にアクセスできます。
import cv2 # Read the original image img = cv2.imread("image.jpg") # Crop a region using numpy slicing cropped_img = img[y:y+h, x:x+w] # Display the cropped image cv2.imshow('Cropped Image', cropped_img) cv2.waitKey(0)
トリミングに getRectSubPix を使用する
特定のシナリオでは、次のような正確なサブピクセルのトリミングが必要な場合は、OpenCV の getRectSubPix 関数を利用できます。ピクセル値を補間しながら画像の長方形部分を抽出します。
import cv2 # Read the original image img = cv2.imread("image.jpg", cv2.IMREAD_GRAYSCALE) # Crop a region using getRectSubPix cropped_img = cv2.getRectSubPix(img, (w, h), (x, y)) # Display the cropped image cv2.imshow('Cropped Image', cropped_img) cv2.waitKey(0)
コード例 (PIL と OpenCV)
PIL と OpenCV の違いを説明するにはOpenCV で提供されているものと同様の例を作成しましょう。質問。
PIL:
import PIL.Image as Image im = Image.open('0.png').convert('L') im = im.crop((1, 1, 98, 33)) im.save('_0.png')
OpenCV:
import cv2 # Read the image img = cv2.imread('0.png', cv2.IMREAD_GRAYSCALE) # Crop the image using numpy slicing cropped_img = img[1:33, 1:98] # Save the cropped image cv2.imwrite('_0.png', cropped_img)
この例では、OpenCV は numpy スライスを使用します座標 (1、1、98、33) で指定された画像をトリミングします。トリミングされた画像は「_0.png」として保存されます。
以上がPython を使用して OpenCV で画像をトリミングする方法: Numpy スライスと getRectSubPix?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。