Hướng dẫn crop image with mouse python - cắt ảnh bằng python chuột
Nhấp và cắt hình ảnhBạn có thể dễ dàng cắt một hình ảnh bằng cách sử dụng nhấp chuột trên OpenCV. Đối với điều này, bạn cần gọi openCV & nbsp; cv2.setMouseCallback (cửa sổ, hình ảnh). & Nbsp; sau đó bạn cần phát hiện nút chuột trái bằng cách sử dụng & nbsp; ; cv2.Event_mousemove & nbsp; và cuối cùng bạn cần phát hiện nút chuột trái được phát hành hoặc & nbsp; cv2.event_lbuttonup & nbsp; sự kiện.cv2.setMouseCallback(“window”, image). You then need to detect the left mouse button down using the cv2.EVENT_LBUTTONDOWN event, then continuously locate the position of the mouse using the cv2.EVENT_MOUSEMOVE event and at last you need to detect the left mouse button released or cv2.EVENT_LBUTTONUP event. Show Bằng cách này, nó sẽ tạo một hình chữ nhật cho hình ảnh và cũng cung cấp ROI đầu ra của hình ảnh được cắt Code:import cv2 import numpy as np cropping = False x_start, y_start, x_end, y_end = 0, 0, 0, 0 image = cv2.imread('test.jpg') oriImage = image.copy() def mouse_crop(event, x, y, flags, param): # grab references to the global variables global x_start, y_start, x_end, y_end, cropping # if the left mouse button was DOWN, start RECORDING # (x, y) coordinates and indicate that cropping is being if event == cv2.EVENT_LBUTTONDOWN: x_start, y_start, x_end, y_end = x, y, x, y cropping = True # Mouse is Moving elif event == cv2.EVENT_MOUSEMOVE: if cropping == True: x_end, y_end = x, y # if the left mouse button was released elif event == cv2.EVENT_LBUTTONUP: # record the ending (x, y) coordinates x_end, y_end = x, y cropping = False # cropping is finished refPoint = [(x_start, y_start), (x_end, y_end)] if len(refPoint) == 2: #when two points were found roi = oriImage[refPoint[0][1]:refPoint[1][1], refPoint[0][0]:refPoint[1][0]] cv2.imshow("Cropped", roi) cv2.namedWindow("image") cv2.setMouseCallback("image", mouse_crop) while True: i = image.copy() if not cropping: cv2.imshow("image", image) elif cropping: cv2.rectangle(i, (x_start, y_start), (x_end, y_end), (255, 0, 0), 2) cv2.imshow("image", i) cv2.waitKey(1) # close all open windows cv2.destroyAllWindows() Output:
Hãy liên hệ với chúng tôi cho bất kỳ loại vấn đề kỹ thuật nào của bạn. Chúng tôi đang ở đây để giúp bạn.
Tệp này chứa văn bản unicode hai chiều có thể được giải thích hoặc biên dịch khác với những gì xuất hiện dưới đây. Để xem xét, hãy mở tệp trong một trình soạn thảo cho thấy các ký tự Unicode ẩn. Tìm hiểu thêm về các ký tự unicode hai chiều
Làm cách nào để cắt một hình ảnh với chuột?Chọn phần của hình ảnh bạn muốn cắt bằng công cụ chọn. Sau khi được chọn, nhấp chuột phải vào chuột ở bất cứ đâu trong lựa chọn hình ảnh và chọn Cây trồng.right-click with the mouse anywhere in the image selection and select Crop.
Bạn có thể cắt một hình ảnh bằng Python không?Trong Python, bạn cắt hình ảnh bằng phương pháp tương tự như cắt mảng numpy.Để cắt một mảng, bạn cần chỉ định chỉ số bắt đầu và kết thúc của kích thước thứ nhất cũng như kích thước thứ hai.Kích thước đầu tiên luôn là số lượng hàng hoặc chiều cao của hình ảnh.you crop the image using the same method as NumPy array slicing. To slice an array, you need to specify the start and end index of the first as well as the second dimension. The first dimension is always the number of rows or the height of the image.
Làm cách nào để cắt một hình ảnh bằng tay bằng Python?Kỹ thuật 1: Python Pil để cắt một hình ảnh PIL có hình ảnh được xây dựng.Chức năng cây trồng () tạo ra một phần hình chữ nhật của hình ảnh.Trên cùng và bên trái: Các tham số này đại diện cho tọa độ trên cùng bên trái i.e (x, y) = (trái, trên cùng).PIL has in-built Image. crop() function that crops a rectangular part of the image. top and left : These parameters represent the top left coordinates i.e (x,y) = (left, top).
Làm cách nào để cắt một hình ảnh đến một kích thước cụ thể trong Python?Sử dụng Resize () để thay đổi kích thước toàn bộ hình ảnh thay vì cắt ra một phần của hình ảnh và sử dụng putalpha () để tạo hình ảnh trong suốt bằng cách cắt ra một hình dạng khác với hình chữ nhật (như một vòng tròn).Sử dụng cắt lát để cắt hình ảnh được biểu thị bằng mảng numpy ndarray.Nhập hình ảnh từ PIL và mở hình ảnh đích., and use putalpha() to create a transparent image by cutting out a shape other than a rectangle (such as a circle). Use slicing to crop the image represented by the NumPy array ndarray . Import Image from PIL and open the target image. |