2008-09-18 66 views
79

Gần đây tôi đã gặp một vấn đề đòi hỏi ít nhất một mức độ xử lý hình ảnh cơ bản, tôi có thể làm điều này bằng Python hay không, và nếu có, với cái gì?Xử lý hình ảnh, bằng Python?

+4

xử lý hình ảnh theo thời gian thực sử dụng PyPy: http://morepypy.blogspot.com/2011/07/ realtime-image-processing-in-python.html – Mikhail

Trả lời

51

Thư viện nổi tiếng nhất là PIL. Tuy nhiên nếu bạn chỉ đơn giản là thực hiện thao tác cơ bản, bạn có thể tốt hơn với các ràng buộc Python cho ImageMagick, đó sẽ là một thỏa thuận tốt hơn hiệu quả hơn bằng cách viết các biến đổi trong Python.

+7

Tôi nghĩ rằng bạn có backward: PIL chỉ cung cấp các chức năng barebones cơ bản nhất, nhưng nó tích hợp độc đáo với Python GUI. IM cực kỳ đầy đủ tính năng nhưng yêu cầu một số bộ đệm giao dịch công việc thủ công qua lại để tích hợp với GUI. – SilverbackNet

+19

Hãy đặt nó theo cách này, buồn nhưng ** PIL seams được từ bỏ-ware ** và nó thậm chí không tải các tập tin BMP được tạo ra với Paint. Nếu bạn kiểm tra trang web của dự án bạn sẽ tìm ra, hãy tìm trình theo dõi lỗi (không), hoạt động danh sách gửi thư, SCM, ... – sorin

+18

[Gối] (https://pypi.python.org/pypi/Pillow/ 2.1.0) là một nhánh của PIL đang được duy trì và phát triển. Thay vào đó, tốt hơn là nên sử dụng nó. –

6

Có thực sự là một tuyệt vời Python Imaging Library (PIL). Nó cung cấp cho bạn khả năng thay đổi hình ảnh hiện có, bao gồm cả khả năng chống răng cưa, và tạo ra hình ảnh mới với văn bản và như vậy. Bạn cũng có thể tìm thấy decent introductory tutorial trong sổ tay PIL được cung cấp trên trang web nói trên.

+9

Bạn có sử dụng Google trước khi đặt câu hỏi này không? :-) Tôi không nói rằng bạn _should_, chỉ có vẻ như một chút buồn cười để trả lời câu hỏi của riêng bạn trong chưa đầy một phút. –

+5

Toàn bộ ý tưởng của trang này là cung cấp các cặp (câu hỏi, câu trả lời) sẽ cung cấp thông tin hữu ích cho ai đó đang tìm kiếm chủ đề này. Nó được khuyến khích rằng nếu bạn tìm thấy một cái gì đó hữu ích bạn không biết trước đây, và nó không phải là đã có trên trang web, mà bạn chia sẻ nó với StackOverflow. – akdom

+8

Từ Câu hỏi thường gặp: Bạn cũng có thể hỏi và trả lời câu hỏi lập trình của mình một cách hoàn hảo, nhưng giả vờ là bạn đang gặp nguy hiểm: cụm từ đó dưới dạng một câu hỏi. Mặc dù, tôi nghĩ rằng câu hỏi này có thể dễ dàng được trả lời bởi bất cứ ai có nhu cầu nhanh chóng thông qua một tìm kiếm google ... –

7

Ngoài ra còn có pycairo, có thể phù hợp hơn tùy theo nhu cầu của bạn.

18

Bạn cũng có cách tiếp cận xử lý hình ảnh dựa trên mô-đun khoa học "chuẩn": SciPy có toàn bộ gói dành riêng cho xử lý hình ảnh: scipy.ndimage. Scipy có hiệu lực trong gói tính toán số chuẩn chung; nó dựa trên mô-đun thao tác mảng tiêu chuẩn thực tế NumPy: các hình ảnh cũng có thể được thao tác như một mảng các số. Đối với hiển thị hình ảnh, Matplotlib (cũng là một phần của "bộ ba khoa học") làm hiển thị hình ảnh quite simple.

SciPy vẫn được duy trì tích cực, vì vậy đây là một đầu tư tốt cho tương lai. Hơn nữa, SciPy hiện cũng chạy với Python 3, trong khi Thư viện hình ảnh Python (PIL) thì không.

+0

Để tham khảo trong tương lai, mặc dù ndimage yêu cầu PIL. – notJim

+1

@notJim: phải không? PIL không được liệt kê trong các phụ thuộc của SciPy bởi MacPorts, và tôi có thể thực hiện 'import scipy' không cài đặt PIL (' import Image' không thành công với 'ImportError'). – EOL

+2

Có, khi tôi cố gắng đọc một hình ảnh bằng ImRead, tôi gặp lỗi "tăng ImportError (" Không thể nhập Thư viện ảnh Python (PIL) "" – notJim

43

Tùy thuộc vào ý của bạn là "xử lý hình ảnh", lựa chọn tốt hơn có thể nằm trong thư viện dựa trên gumpy: mahotas, scikits.image hoặc scipy.ndimage. Tất cả các công việc này dựa trên các mảng có nhiều mảng, vì vậy bạn có thể trộn và kết hợp các hàm từ thư viện này với thư viện khác.

Tôi đã bắt đầu trang web http://pythonvision.org có nhiều thông tin hơn về những điều này.

+0

"Scikits.image SciKit (bộ công cụ cho SciPy) mở rộng scipy.ndimage để cung cấp một bộ linh hoạt các quy trình xử lý ảnh. "Tôi tự hỏi tại sao chúng không chỉ đóng góp trực tiếp vào hình ảnh. – endolith

+1

Tất cả các gói này đều có cấu trúc bên trong khác nhau. rất nhiều mã từ ndimage, mặc dù – luispedro

+0

'scikit-image' hiện được lưu trữ tại http://scikit-image.org –

Các vấn đề liên quan