2012-02-16 12 views
15

Tôi có một bức ảnh màu sắc của quả táo, làm thế nào tôi có thể chỉ hiển thị đường viền của nó (bên trong màu trắng, nền đen) với python/PIL?Hình ảnh phác thảo sử dụng python/PIL

+0

Bao gồm một số hình ảnh mẫu về đầu vào mong muốn. – mmgp

Trả lời

25

Điều gì đó như thế này sẽ hoạt động.

from PIL import Image, ImageFilter 

image = Image.open('your_image.png') 
image = image.filter(ImageFilter.FIND_EDGES) 
image.save('new_name.png') 

Nếu điều đó không cung cấp cho bạn những kết quả mà bạn đang tìm kiếm thì bạn cố gắng thực hiện một trong hai Prewitt phát hiện cạnh, Sobel phát hiện cạnh hoặc phát hiện cạnh Canny sử dụng PIL và Python và các thư viện khác xem liên quan question và sau đây example .

Nếu bạn đang cố gắng phát hiện/phân tích hạt hơn là chỉ phát hiện cạnh, bạn có thể thử sử dụng py4ij để gọi phương thức ImageJ mà bạn liên kết để cho bạn mong đợi kết quả tương tự hoặc thử thư viện Python phân tích Particle EMAN khác có thể viết một thuật toán phát hiện hạt bằng cách sử dụng PIL, SciPy và NumPy.

+0

Xin chào, Các bức ảnh có màu và ngay cả khi tôi quy mô màu xám và chạy các bộ lọc nó không hoạt động tốt vì tôi chỉ muốn phác thảo hình dạng quả táo, có thể không? Nó giống như phương pháp imageJ được mô tả trong rsbweb.nih.gov/ij/docs/pdfs/examples.pdf. Cảm ơn – user1212200

+1

@ Appleman1234, cảm ơn bạn rất nhiều vì đã đề cập đến bài đăng của tôi. Hey, bạn có thể nhập các mô-đun phát hiện cạnh có thể và chạy nó để tìm các cạnh một mình. Đầu ra sẽ là một mảng mờ, nhưng bạn có thể chuyển đổi thành hình ảnh PIL bằng cách sử dụng im = Image.fromarray (imarray) – Vishwanath

+0

@Appleman là nó có thể chia hình ảnh thành các thành phần dựa trên FIND_EDGES không? – user1658296

4

Nếu đối tượng và nền của bạn đã khá tốt tương phản

from PIL import Image 
image = Image.open(your_image_file) 
mask=image.convert("L") 
th=150 # the value has to be adjusted for an image of interest 
mask = mask.point(lambda i: i < th and 255) 
mask.save(file_where_to_save_result) 

nếu độ tương phản cao hơn là trong một (3 màu), bạn có thể chia hình ảnh vào ban nhạc thay vì chuyển đổi nó thành màu xám quy mô.

nếu hình ảnh hoặc nền khá phức tạp, việc xử lý phức tạp hơn sẽ được yêu cầu