Làm thế nào để bạn cắt một phần của hình ảnh trong python?
Bạn có muốn cắt ảnh trong python không? . Bạn sẽ biết cách cắt ảnh trong python bằng các gói OpenCV. OpenCV là thư viện tốt nhất để xử lý và chuyển đổi hình ảnh. Có nhiều chức năng sẵn có trong đó và sử dụng một trong các chức năng này, bạn sẽ cắt ảnh trong python Show Các bước để cắt một hình ảnh trong pythonTrong phần này, bạn sẽ biết tất cả các bước để cắt ảnh trong python. Bạn chỉ cần làm theo các bước để hiểu sâu Bước 1. Nhập tất cả các thư viện cần thiếtBước đầu tiên là nhập tất cả các thư viện cần thiết cho hướng dẫn này. Trong ví dụ của chúng tôi, Chúng tôi chỉ sử dụng OpenCV, vì vậy hãy nhập nó bằng câu lệnh nhập
Bước 2. Đọc hình ảnhBước thứ hai là đọc hình ảnh để cắt xén. Trong OpenCV, bạn có thể đọc hình ảnh bằng cv2. phương thức imread(). Nó sẽ đọc hình ảnh dưới dạng một mảng. Hãy đọc nó bằng dòng mã sau Đây là một ví dụ về cách hình ảnh gốc được cắt thành một vùng nhỏ hơn từ (100, 20) phía trên bên trái đến (540, 210) phía dưới bên phải Dung dịch. hình ảnh. gặm cỏ()Để cắt hình ảnh thành một khu vực nhất định, hãy sử dụng hàm PIL from PIL import Image # Given information img = Image.open("image.jpg") width, height = 440, 190 x, y = 100, 20 # Select area to crop area = (x, y, x+width, y+height) # Crop, show, and save image cropped_img = img.crop(area) cropped_img.show() cropped_img.save("cropped_image.jpg")3 xác định khu vực sẽ được cắt bằng hai điểm trong hệ tọa độ. Giá trị pixel from PIL import Image # Given information img = Image.open("image.jpg") width, height = 440, 190 x, y = 100, 20 # Select area to crop area = (x, y, x+width, y+height) # Crop, show, and save image cropped_img = img.crop(area) cropped_img.show() cropped_img.save("cropped_image.jpg")4 và from PIL import Image # Given information img = Image.open("image.jpg") width, height = 440, 190 x, y = 100, 20 # Select area to crop area = (x, y, x+width, y+height) # Crop, show, and save image cropped_img = img.crop(area) cropped_img.show() cropped_img.save("cropped_image.jpg")5. Hai điểm đó xác định rõ ràng hình chữ nhật sẽ được cắt Dưới đây là ví dụ về cách cắt xén hình ảnh với from PIL import Image # Given information img = Image.open("image.jpg") width, height = 440, 190 x, y = 100, 20 # Select area to crop area = (x, y, x+width, y+height) # Crop, show, and save image cropped_img = img.crop(area) cropped_img.show() cropped_img.save("cropped_image.jpg")60 và from PIL import Image # Given information img = Image.open("image.jpg") width, height = 440, 190 x, y = 100, 20 # Select area to crop area = (x, y, x+width, y+height) # Crop, show, and save image cropped_img = img.crop(area) cropped_img.show() cropped_img.save("cropped_image.jpg")61 pixel và điểm bắt đầu phía trên bên trái from PIL import Image # Given information img = Image.open("image.jpg") width, height = 440, 190 x, y = 100, 20 # Select area to crop area = (x, y, x+width, y+height) # Crop, show, and save image cropped_img = img.crop(area) cropped_img.show() cropped_img.save("cropped_image.jpg")62 và from PIL import Image # Given information img = Image.open("image.jpg") width, height = 440, 190 x, y = 100, 20 # Select area to crop area = (x, y, x+width, y+height) # Crop, show, and save image cropped_img = img.crop(area) cropped_img.show() cropped_img.save("cropped_image.jpg")63 pixel như minh họa trong hình trước from PIL import Image # Given information img = Image.open("image.jpg") width, height = 440, 190 x, y = 100, 20 # Select area to crop area = (x, y, x+width, y+height) # Crop, show, and save image cropped_img = img.crop(area) cropped_img.show() cropped_img.save("cropped_image.jpg") Bạn có thể thử với ví dụ này—bao gồm cả ảnh gốc và ảnh đã cắt được hiển thị ở đây—trong sân chơi tương tác của chúng tôi Nhấp để chạy mãĐây là hình ảnh gốc from PIL import Image # Given information img = Image.open("image.jpg") width, height = 440, 190 x, y = 100, 20 # Select area to crop area = (x, y, x+width, y+height) # Crop, show, and save image cropped_img = img.crop(area) cropped_img.show() cropped_img.save("cropped_image.jpg")64 Và đây là hình ảnh đã cắt from PIL import Image # Given information img = Image.open("image.jpg") width, height = 440, 190 x, y = 100, 20 # Select area to crop area = (x, y, x+width, y+height) # Crop, show, and save image cropped_img = img.crop(area) cropped_img.show() cropped_img.save("cropped_image.jpg")65 Bạn có muốn luôn dẫn đầu trò chơi bằng Python không? Chris Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners (NoStarch 2020), đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây Có một chức năng cắt trong PIL để cắt hình ảnh nếu bạn biết tọa độ vùng cắt. Bạn sẽ cắt vùng trung tâm của Hình ảnh như thế nào nếu bạn muốn cắt một phần hình dạng Hình ảnh nhất định Trong bài đăng này, chúng tôi sẽ sử dụng PIL, tensorflow, numpy trong sổ ghi chép colab của Google và tìm hiểu cách cắt hình ảnh ở giữa khi bạn thực sự không biết kích thước hình ảnh cắt mà chỉ biết phần kích thước hình ảnh cần cắt Chúng tôi sẽ làm theo các bước ở đây
Bắt đầu nào Trước tiên, chúng tôi sẽ bắt đầu sổ ghi chép google colab trong ổ đĩa google của mình và tải lên hình ảnh thử nghiệm “nơi làm việc. jpg” Sử dụng PIL để cắt Hình ảnh ở giữaChúng tôi sẽ sử dụng Hình ảnh PIL. open() để mở và xác định hình ảnh thử nghiệm của chúng tôi
Tiếp theo, chúng tôi muốn cắt 70% kích thước của hình ảnh, vì vậy chúng tôi sẽ tính bốn tọa độ sau cho hình ảnh đã cắt của chúng tôi. trái, trên, phải và dưới. Bên trái và bên phải là tọa độ x gần nhất bên trái và bên phải của hình ảnh và bên phải cũng có thể được biểu diễn dưới dạng (trái+chiều rộng) và bên dưới có thể được biểu diễn dưới dạng (trên+chiều cao) Phần (70%) của hình ảnh được cắt từ trung tâm được đưa ra bởi biến frac
Bây giờ chúng tôi biết tọa độ của hình ảnh đã cắt của mình, vì vậy chúng tôi sẽ chuyển các tham số này vào Hình ảnh PIL. crop() để lấy hình ảnh đã cắt từ trung tâm
Đây là mã đầy đủ để cắt kích thước 70% của Hình ảnh từ trung tâm
Sử dụng mô-đun Tensorflow Image để cắt Hình ảnh ở giữaTenorflow tf. mô-đun hình ảnh chứa các chức năng khác nhau để xử lý hình ảnh và Giải mã-mã hóa Ops Trước tiên, hãy nhập các gói và thư viện quan trọng. Xin lưu ý rằng các gói tenorflow và khoa học dữ liệu khác được cài đặt sẵn trong sổ ghi chép google colab
Đọc hình ảnh bằng opencv, trả về Image ndarray
Bây giờ, chúng ta sẽ sử dụng tf. hình ảnh. central_crop() để cắt vùng trung tâm của hình ảnh. Thông số central_fraction được đặt thành 0. 7 ________số 8 Đây là mã đầy đủ và hình ảnh đã cắt được hiển thị bên dưới
Sử dụng Opencv và Numpy để cắt Hình ảnh ở giữaTrong phần này, chúng tôi sẽ sử dụng numpy để cắt hình ảnh từ trung tâm from PIL import Image # Given information img = Image.open("image.jpg") width, height = 440, 190 x, y = 100, 20 # Select area to crop area = (x, y, x+width, y+height) # Crop, show, and save image cropped_img = img.crop(area) cropped_img.show() cropped_img.save("cropped_image.jpg")0 Đầu tiên đọc hình ảnh bằng opencv from PIL import Image # Given information img = Image.open("image.jpg") width, height = 440, 190 x, y = 100, 20 # Select area to crop area = (x, y, x+width, y+height) # Crop, show, and save image cropped_img = img.crop(area) cropped_img.show() cropped_img.save("cropped_image.jpg")1 Sau đó tìm tọa độ của hình ảnh đã cắt, tôi. e. tọa độ x trái và phải, ở đây chúng tôi sẽ loại bỏ 30% còn lại từ bên trái và bên phải i. e. 15% (frac/2) từ mỗi bên 0Tiếp theo, chúng ta sẽ cắt mảng Hình ảnh như hình bên dưới để lấy 70% Hình ảnh được cắt từ vùng trung tâm |