![](/img/trans.png)
[英]How to auto detect trim and crop part of image using OpenCV python?
[英]What is the easy way to crop a part of image using Python OpenCV
我有以下代碼來裁剪圖像的一部分:
import cv2
def on_mouse(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDOWN:
print("X: {} | Y: {}".format(x, y))
win_name = "Image"
cv2.namedWindow(win_name)
cv2.setMouseCallback(win_name, on_mouse)
img = cv2.imread('park.jpg')
cropImg = img[179:470, 511:645]
cv2.imshow(win_name, img)
cv2.imshow("Crop", cropImg)
cv2.waitKey(0)
cv2.destroyAllWindows()
在上面的代碼中,您可以看到我已經定義了一個 function 調用on_mouse
,它基本上為我們提供了鼠標在圖像上單擊的任何位置的坐標 (x, y)。 這有助於獲取我們要裁剪區域的x1, y1
和x2, y2
坐標。 在下圖中,我試圖裁剪giraffe
的區域。 所以我點擊了長頸鹿附近的左上角,坐標為X: 470 | Y: 179
X: 470 | Y: 179
然后我點擊了長頸鹿的右下角,它給了我坐標X: 645 | Y: 511
X: 645 | Y: 511
。 在上面的代碼中使用它們時,它給出以下 output
下面是原圖
任何人都可以幫助我了解如何裁剪它以及這些x1, y1 and x2, y2
表示什么? 謝謝
(x1, y1) 是起點的坐標,而 (x2, y2) 是圖像中的終點。 在矩形中,您可以將它們視為左上角是 (x1, y1) 而 (x2, y2) 是右下角 - 或者就像寬度和高度一樣。
但是在裁剪時它們有一點反向格式
cropImage = image[ y1: y2 , x1: x2]
# or
cropImage = image[ Y: H, X: W ]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.