5

Tôi có tệp hình ảnh GIF. Tôi đã mở nó bằng cách sử dụng PIL.Image và đã thực hiện một vài thay đổi kích thước trên đó. Sau đó, tôi cố gắng sử dụng ImageSharpness.Enhance() vào nó ...'không thể lọc lỗi hình ảnh của bảng màu khi thực hiện ImageEnhance.Sharpness()

sharpener = PIL.ImageEnhance.Sharpness(img) 
sharpened = sharpener.enhance(2.0) 

này đang gây ra một ngoại lệ:

<type 'exceptions.ValueError'> 
('cannot filter palette images',) 

Tôi cố gắng để google cho lỗi này, nhưng không tìm thấy bất cứ điều gì. Ai đó có thể giúp tôi tìm ra những gì đang xảy ra không?

FYI chế độ của hình ảnh đầu vào là 'P'. Tôi không có vấn đề này nếu tôi làm việc với hình ảnh jpg.

Trả lời

7
sharpener = PIL.ImageEnhance.Sharpness (img.convert('RGB')) 

Khá phổ biến đối với các thuật toán không thể hoạt động với hình ảnh dựa trên bảng màu. Các convert ở trên thay đổi nó để có một giá trị RGB đầy đủ tại mỗi vị trí pixel.

+0

Cảm ơn! Tôi nên làm điều này cho chế độ hình ảnh nào? Tôi có nên làm điều đó cho mọi thứ ngoại trừ 'RGB' và 'RGBA' không? – feroze

+1

@feroze, chế độ 'L' cũng hoạt động, nếu không bạn chính xác. –

+0

Cảm ơn. Đánh giá cao câu trả lời nhanh của bạn. – feroze