Hướng dẫn create circular mask python - tạo mặt nạ tròn python
Thuật toán bạn trực tuyến là một phần sai, ít nhất là cho mục đích của bạn. Nếu chúng ta có hình ảnh sau, chúng ta muốn nó che dấu như vậy: Cách dễ nhất để tạo mặt nạ như thế này là cách thuật toán của bạn đi về nó, nhưng nó không được trình bày theo cách bạn muốn, cũng không cho bạn khả năng sửa đổi nó một cách dễ dàng. Những gì chúng ta cần làm là nhìn vào các tọa độ cho mỗi pixel trong hình ảnh và nhận được một giá trị đúng/sai cho việc pixel đó có nằm trong bán kính hay không. Ví dụ: đây là một hình ảnh được phóng to hiển thị bán kính vòng tròn và các pixel hoàn toàn nằm trong bán kính đó: Bây giờ, để tìm ra những pixel nằm bên trong vòng tròn, chúng ta sẽ cần các chỉ số của từng pixel trong hình ảnh. Hàm
Định dạng này rất hữu ích để phát sóng để nếu chúng ta sử dụng chúng trong một số chức năng nhất định, nó thực sự sẽ tạo ra một lưới của tất cả các chỉ số thay vì chỉ hai vectơ đó. Do đó, chúng ta có thể sử dụng Bây giờ chúng tôi đã có mọi thứ chúng tôi cần để tạo ra một chức năng tạo ra mặt nạ này. Hơn nữa, chúng tôi sẽ thêm một chút chức năng tốt đẹp cho nó; Chúng tôi có thể gửi ở trung tâm và bán kính, hoặc tự động tính toán chúng.
Trong trường hợp này, Vì vậy, khi chúng ta so sánh nó với 0, nó giống hệt với ngưỡng hình ảnh độ dốc này.Lưu ý rằng mặt nạ cuối cùng là một ma trận Booleans; 1 Nếu vị trí đó nằm trong bán kính từ trung tâm được chỉ định, 2 khác. Vì vậy, sau đó chúng tôi có thể sử dụng mặt nạ này như một chỉ số cho một vùng pixel mà chúng tôi quan tâm, hoặc chúng tôi có thể đối lập với boolean đó ( 3 trong 4) để chọn các pixel bên ngoài khu vực đó. Vì vậy, sử dụng chức năng này để tô màu các pixel bên ngoài vòng tròn màu đen, giống như tôi đã làm ở đầu bài đăng này, cũng đơn giản như:
Nhưng nếu chúng tôi muốn tạo một mặt nạ tròn ở một điểm khác so với trung tâm, chúng tôi có thể chỉ định nó (lưu ý rằng hàm đang mong đợi tọa độ trung tâm theo thứ tự 5, chứ không phải chỉ mục 6):
Mà, vì chúng tôi không đưa ra bán kính, sẽ cho chúng tôi bán kính lớn nhất để vòng tròn vẫn phù hợp với giới hạn hình ảnh: Hoặc chúng ta có thể để nó tính toán trung tâm nhưng sử dụng bán kính được chỉ định:
Cung cấp cho chúng tôi một vòng tròn tập trung với bán kính không mở rộng chính xác đến kích thước nhỏ nhất: Và cuối cùng, chúng tôi có thể chỉ định bất kỳ bán kính và trung tâm nào chúng tôi muốn, bao gồm cả bán kính mở rộng bên ngoài giới hạn hình ảnh (và trung tâm thậm chí có thể nằm ngoài giới hạn hình ảnh!):
Những gì thuật toán bạn tìm thấy trực tuyến làm tương đương với việc đặt trung tâm thành 7 và đặt bán kính thành 8: |