2016-08-22 4 views
1

У меня есть изображение image.png, и я хочу найти все обрезанные пиксели. Вот что у меня есть до сих пор:Найти обрезанные пиксели в изображении RGB

for i in range(1,width): 
    for j in range(1, height): 
     r,g,b = image.getpixel((i,j)) 
     If(): # I don't know what should be the condition here 
      # do something else 

Я использую Python, Tkinter, Pil.

Благодаря

+0

Ваш пиксель можно обрезать только одним из R, G и B, или двумя, или всеми тремя. Если значения PIL 'getpixel()' всегда масштабируются на '[0-255]', тест будет, если любой из R, G или B равен 255. Но лучше следить за 16-разрядными изображениями, которые будут 65535 при насыщенных, а также индексированных/палитрованных изображениях, где значения, которые вы читаете, могут быть индексами, а не значениями RGB. –

ответ

0

Если под «подрезаны» вы имеете в виду насыщенными, то вы, вероятно, хотите создать порог на основе интенсивности пикселя. Есть несколько уравнений, которые пытаются это определить, но я бы порекомендовал один из Grayscale equations. Рассматривая уравнение, используемое в ATSC:

I=.2126*r+.7152*g+.0722*b 

Затем просто определите, какой диапазон значений для I вы считали «обрезанным».

Смежные вопросы