Hướng dẫn cắt ảnh trong python
Thao tác cắt được thực hiện để loại bỏ tất cả các đối tượng hoặc khu vực không mong muốn khỏi hình ảnh. Hoặc thậm chí để làm nổi bật một tính năng cụ thể của hình ảnh. Không có hàm cụ thể nào để cắt ảnh trong OpenCV mà được thực hiện thông qua tính chất của mảng NumPy. Mọi hình ảnh được đọc vào sẽ được lưu trữ trong một mảng 2D (cho mỗi kênh màu). Sau đó chỉ định chiều cao và chiều rộng (tính bằng pixel) của khu vực sẽ được cắt. Bài viết gồm các nội dung chính sau: 1. Cắt ảnh với OpenCV 2. Chia ảnh thành các phần nhỏ 3. Ứng dụng của việc cắt ảnh Dưới đây là đoạn code mẫu dùng để cắt ảnh viết bằng C++ và Python Python
C++
1. Cắt ảnh với OpenCV Hình ảnh dưới đây sẽ được sử dụng làm ảnh đầu vào cho cả bài viết Python
C++
Đoạn code trên đọc và hiển thị một hình ảnh và kích thước của nó. Kích thước không chỉ bao gồm chiều rộng và chiều cao của ma trận 2-D mà còn bao gồm cả số kênh (ví dụ: hình ảnh RGB có 3 kênh – Red, Green and Blue). Tiếp theo sẽ thử cắt một phần của hình ảnh có hoa. Python
C++
Trong Python, việc cắt hình ảnh 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 chiều cao và chiều rộng. – Kích thước đầu tiên luôn là số hàng hoặc chiều cao của hình ảnh. – Kích thước thứ hai là số cột hoặc chiều rộng của hình ảnh. Với quy ước rằng kích thước đầu tiên của một mảng 2D là các hàng của mảng (trong đó mỗi hàng đại diện cho tọa độ y của hình ảnh). Cú pháp để cắt một mảng NumPy: cropped = img[start_row:end_row, start_col:end_col] Trong C ++, hàm Range() được dùng để cắt hình ảnh. Cú pháp C ++ để cắt hình ảnh như sau: img(Range(start_row, end_row), Range(start_col, end_col)) 2. Chia ảnh thành các phần nhỏ Một ứng dụng thực tế của việc cắt trong OpenCV là có thể chia hình ảnh thành các mảng nhỏ hơn. Trước hết cần lấy ra thông tin về kích thước ảnh. Sau đó sử dụng các vòng lặp để cắt ra một phần từ hình ảnh. Python
C++
Sau đó sử dụng hàm range() và 2 vòng lặp for – Một vòng lặp cho phạm vi chiều rộng – Một vòng lặp cho phạm vi chiều cao Python
C++
|