Bạn có thể cắt hình ảnh trong python không?

Trong OpenCV, hình ảnh chỉ đơn giản là mảng Numpy. Vì vậy, chúng tôi có thể sử dụng kỹ thuật cắt mảng Numpy để cắt hình ảnh và xóa phần mà chúng tôi không quan tâm

Hình ảnh bên dưới sẽ được sử dụng làm ví dụ xuyên suốt hướng dẫn này

Bài viết này là phần 4 của loạt bài hướng dẫn về thị giác máy tính và xử lý ảnh với OpenCV

được tài trợ

Kích thước đầu tiên của mảng Numpy đại diện cho các hàng của mảng [là chiều cao của hình ảnh hoặc tọa độ y] và kích thước thứ hai đại diện cho các cột của mảng [là chiều rộng của hình ảnh hoặc tọa độ x

Vì vậy, để cắt một hình ảnh, chúng ta có thể sử dụng cú pháp sau

cropped_img = img[y_start:y_end, x_start:x_end]

Hãy đi thẳng vào một ví dụ để bạn không bị lạc

import cv2

# read the image
image = cv2.imread["image.jpg"]

cropped_img = image[50:200, 100:400]

cv2.imshow["Original image", image]
cv2.imshow["Cropped image", cropped_img]
cv2.waitKey[0]
cv2.destroyAllWindows[]

Khi cắt một mảng Numpy, chúng ta bắt đầu với chiều cao [các hàng của mảng] và sau đó là chiều rộng [các cột của mảng]

Hãy xem hình ảnh bên dưới để xem khu vực chúng tôi sẽ giữ lại sau khi cắt xén. Hình ảnh cũng cho chúng ta biết tọa độ sẽ được sử dụng để cắt

Đây là kết quả

Hãy xem một ví dụ khác

image = cv2.imread["image.jpg"]
cropped_img = image[30:350, 270:450]

cv2.imshow["Original image", image]
cv2.imshow["Cropped image", cropped_img]
cv2.waitKey[0]
cv2.destroyAllWindows[]

Một lần nữa, đây là tọa độ và khu vực mà chúng tôi sẽ giữ lại sau khi cắt xén

và đây là ảnh đã crop

Đây là ví dụ cuối cùng về việc cắt xén sẽ chỉ giữ lại vùng hoa

image = cv2.imread["image.jpg"]
cropped_img = image[30:365, 104:450]

cv2.imshow["Original image", image]
cv2.imshow["Cropped image", cropped_img]
cv2.waitKey[0]
cv2.destroyAllWindows[]

Tôi nghĩ rằng tôi đã bao gồm đủ ví dụ để bạn không bị lạc. Hy vọng với những ví dụ này, bạn sẽ hiểu rõ hơn về cách hoạt động của crop

được tài trợ

Cắt xén là một thao tác xử lý ảnh quan trọng và cũng rất đơn giản để sử dụng. Có thể bạn có thể nhầm lẫn với điểm bắt đầu và điểm kết thúc của việc cắt hoặc bạn có thể đảo ngược tọa độ x và y nhưng với một số thực hành, điều này sẽ trở nên tự nhiên

Nếu bạn muốn tìm hiểu thêm về thị giác máy tính và xử lý hình ảnh, hãy xem khóa học của tôi Thị giác máy tính và xử lý hình ảnh với OpenCV và Python

Nếu bạn cần trợ giúp, đừng ngần ngại hỏi trong phần bình luận. Ngoài ra, đừng quên đăng ký danh sách gửi thư để không bỏ lỡ bất kỳ bài viết tiếp theo nào

Cảm ơn bạn đã ghé thăm website của chúng tôi. Chúng tôi sử dụng các cookie thiết yếu để giúp chúng tôi hiểu và nâng cao trải nghiệm người dùng. Bằng cách nhấp vào “Chấp nhận”, bạn đồng ý với việc sử dụng TẤT CẢ các cookie

Chấp nhận Chính sách bảo mật

Thư viện xử lý ảnh Gối [PIL] của Python cung cấp

image = cv2.imread["image.jpg"]
cropped_img = image[30:350, 270:450]

cv2.imshow["Original image", image]
cv2.imshow["Cropped image", cropped_img]
cv2.waitKey[0]
cv2.destroyAllWindows[]
6 để cắt bỏ một phần diện tích của ảnh

Bài viết này mô tả các nội dung sau với mã mẫu

  • cây trồng bình thường
  • Chỉ định khu vực bên ngoài
  • Cắt trung tâm của hình ảnh
  • Cắt hình vuông lớn nhất từ ​​hình chữ nhật

Vui lòng xem bài viết sau để biết cách cài đặt và sử dụng cơ bản Gối [PIL]

  • Cách sử dụng Gối [PIL. Thư viện hình ảnh Python]

Sử dụng

image = cv2.imread["image.jpg"]
cropped_img = image[30:350, 270:450]

cv2.imshow["Original image", image]
cv2.imshow["Cropped image", cropped_img]
cv2.waitKey[0]
cv2.destroyAllWindows[]
7 để thay đổi kích thước toàn bộ hình ảnh thay vì cắt bỏ một phần của hình ảnh và sử dụng
im_crop = im.crop[[60, 20, 400, 200]]
im_crop.save['data/dst/astronaut_pillow_crop.jpg', quality=95]
0 để tạo hình ảnh trong suốt bằng cách cắt bỏ một hình dạng không phải hình chữ nhật [chẳng hạn như hình tròn]

  • Thay đổi kích thước hình ảnh bằng Python, Gối
  • Tạo ảnh png trong suốt với Python, Gối [putalpha]

Sử dụng cắt để cắt hình ảnh được đại diện bởi mảng NumPy

im_crop = im.crop[[60, 20, 400, 200]]
im_crop.save['data/dst/astronaut_pillow_crop.jpg', quality=95]
1

  • Xử lý ảnh với Python, NumPy

Nhập

im_crop = im.crop[[60, 20, 400, 200]]
im_crop.save['data/dst/astronaut_pillow_crop.jpg', quality=95]
2 từ
im_crop = im.crop[[60, 20, 400, 200]]
im_crop.save['data/dst/astronaut_pillow_crop.jpg', quality=95]
3 và mở hình ảnh mục tiêu

________số 8

nguồn.

Liên kết được tài trợ

cây trồng bình thường

Đặt vùng cắt xén với

im_crop = im.crop[[60, 20, 400, 200]]
im_crop.save['data/dst/astronaut_pillow_crop.jpg', quality=95]
4

Tọa độ trên cùng bên trái tương ứng với ________ 45 và tọa độ dưới cùng bên phải tương ứng với ________ 46. Khu vực được cắt xén là

im_crop = im.crop[[60, 20, 400, 200]]
im_crop.save['data/dst/astronaut_pillow_crop.jpg', quality=95]
7 và
im_crop = im.crop[[60, 20, 400, 200]]
im_crop.save['data/dst/astronaut_pillow_crop.jpg', quality=95]
8, không bao gồm các điểm ảnh của
im_crop = im.crop[[60, 20, 400, 200]]
im_crop.save['data/dst/astronaut_pillow_crop.jpg', quality=95]
9 và
import cv2

# read the image
image = cv2.imread["image.jpg"]

cropped_img = image[50:200, 100:400]

cv2.imshow["Original image", image]
cv2.imshow["Cropped image", cropped_img]
cv2.waitKey[0]
cv2.destroyAllWindows[]
50

Hãy cẩn thận đừng quên rằng

import cv2

# read the image
image = cv2.imread["image.jpg"]

cropped_img = image[50:200, 100:400]

cv2.imshow["Original image", image]
cv2.imshow["Cropped image", cropped_img]
cv2.waitKey[0]
cv2.destroyAllWindows[]
51 yêu cầu
import cv2

# read the image
image = cv2.imread["image.jpg"]

cropped_img = image[50:200, 100:400]

cv2.imshow["Original image", image]
cv2.imshow["Cropped image", cropped_img]
cv2.waitKey[0]
cv2.destroyAllWindows[]
52

im_crop = im.crop[[60, 20, 400, 200]]
im_crop.save['data/dst/astronaut_pillow_crop.jpg', quality=95]

nguồn.

Nếu bạn chỉ muốn lưu ảnh đã cắt mà không sử dụng cho các thao tác khác, bạn có thể viết trong một dòng

import cv2

# read the image
image = cv2.imread["image.jpg"]

cropped_img = image[50:200, 100:400]

cv2.imshow["Original image", image]
cv2.imshow["Cropped image", cropped_img]
cv2.waitKey[0]
cv2.destroyAllWindows[]
5

nguồn.

Chỉ định khu vực bên ngoài

Ngay cả khi phần bên ngoài của hình ảnh được đặt trong vùng cắt xén, lỗi vẫn không xuất hiện và hình ảnh được hiển thị bằng màu đen

image = cv2.imread["image.jpg"]
cropped_img = image[30:350, 270:450]

cv2.imshow["Original image", image]
cv2.imshow["Cropped image", cropped_img]
cv2.waitKey[0]
cv2.destroyAllWindows[]
0

nguồn.

Liên kết được tài trợ

Cắt trung tâm của hình ảnh

Nếu bạn muốn cắt trung tâm của hình ảnh thành bất kỳ kích thước nào, thuận tiện để xác định chức năng sau

image = cv2.imread["image.jpg"]
cropped_img = image[30:350, 270:450]

cv2.imshow["Original image", image]
cv2.imshow["Cropped image", cropped_img]
cv2.waitKey[0]
cv2.destroyAllWindows[]
1

nguồn.

Ví dụ sử dụng

image = cv2.imread["image.jpg"]
cropped_img = image[30:350, 270:450]

cv2.imshow["Original image", image]
cv2.imshow["Cropped image", cropped_img]
cv2.waitKey[0]
cv2.destroyAllWindows[]
2

nguồn.

Cắt hình vuông lớn nhất từ ​​hình chữ nhật

Khi tạo một hình ảnh thu nhỏ, bạn có thể cần phải cắt một hình vuông càng lớn càng tốt từ hình ảnh hình chữ nhật

Xác định hàm cắt một hình vuông có cạnh ngắn từ tâm của hình chữ nhật

Sử dụng thuộc tính

import cv2

# read the image
image = cv2.imread["image.jpg"]

cropped_img = image[50:200, 100:400]

cv2.imshow["Original image", image]
cv2.imshow["Cropped image", cropped_img]
cv2.waitKey[0]
cv2.destroyAllWindows[]
53 để lấy chiều cao và chiều rộng của hình ảnh và
import cv2

# read the image
image = cv2.imread["image.jpg"]

cropped_img = image[50:200, 100:400]

cv2.imshow["Original image", image]
cv2.imshow["Cropped image", cropped_img]
cv2.waitKey[0]
cv2.destroyAllWindows[]
54 để lấy hình ảnh ngắn hơn. Hàm
import cv2

# read the image
image = cv2.imread["image.jpg"]

cropped_img = image[50:200, 100:400]

cv2.imshow["Original image", image]
cv2.imshow["Cropped image", cropped_img]
cv2.waitKey[0]
cv2.destroyAllWindows[]
55 được xác định ở trên được sử dụng

Chủ Đề