Bạn có thể chuyển đổi hình ảnh thành rgb (đỏ, xanh dương, xanh lục). Ví dụ, có được một hình ảnh từ đây:
https://github.com/panditarevolution/PIL_Play/blob/master/blackline.jpg
import PIL
# The conversion should work equally with a bitmap
img = PIL.Image.open("blackline.jpg")
rgb_im = img.convert('RGB')
rgb_im.size
này trả về kích thước trong số pixel: (680,646)
. Bạn có thể truy vấn màu của từng pixel riêng lẻ bằng rgb_im.getpixel((x,y))
trong đó x
đi ngang và y
đi theo chiều dọc, từ trên xuống dưới tôi tin.
Vì vậy, để kiểm tra xem dòng đầu tiên là tất cả màu đen (hoặc chủ yếu là màu đen), bạn có thể làm một cái gì đó như thế này:
# Get the first row rgb values
first_row = [rgb_im.getpixel((i,0)) for i in range(rgb_im.size[0])]
# Count how many pixels are black. Note that jpg is not the cleanest of all file formats.
# Hence converting to and from jpg usually comes with some losses, i.e. changes in pixel values.
first_row.count((0,0,0)) # --> 628
len(first_row) #--> 680
628/680 = 92% của các điểm ảnh trong hàng đầu tiên là màu đen.
Hãy rà soát tất cả các màu sắc xuất hiện trong hàng đầu tiên với set(first_row)
mà mang lại cho tôi:
{(0, 0, 0),
(0, 0, 2),
(0, 1, 0),
(1, 0, 0),
(1, 1, 1),
(2, 2, 0),
(2, 2, 2),
(4, 4, 2),
(4, 4, 4),
(5, 5, 3),
(5, 7, 6),
(6, 6, 4),
(7, 7, 5),
(14, 14, 12),
(14, 14, 14),
(35, 36, 31),
(52, 53, 48),
(53, 54, 46),
(63, 64, 59),
(64, 65, 60),
(66, 67, 61),
(68, 69, 61),
(76, 77, 71),
(79, 82, 65),
(94, 96, 83),
(96, 98, 87),
(99, 101, 90),
(101, 103, 92)}
Vì vậy, ngay cả khi có khoảng 8% không pixel đen, chúng ta có thể thấy rằng hầu hết trong số này là đơn sắc đẹp, tức là sắc thái của màu xám; giá trị rgb khá gần nhau cho mỗi màu.
Có một hướng dẫn tốt về PIL đây: http://effbot.org/imagingbook/
Một cái nhìn tổng quan cơ bản có thể được tìm thấy ở đây: http://infohost.nmt.edu/tcc/help/pubs/pil.pdf
Như một phần thưởng, và không biết cho dù đó là tốt hay không (hoặc cho dù đó bao gồm PIL), có bản nháp miễn phí về "Lập trình máy tính với Python" có sẵn tại đây: http://programmingcomputervision.com/
Xin chào, tôi đã cập nhật câu trả lời của mình bằng một số mã mẫu. Chúc mừng! – pandita