Как распознать черно-белые изображения?

Мне интересно, есть ли способ распознать (и, возможно, переместить / удалить) черно-белые фотографии в папке, содержащей как черно-белые, так и цветные изображения? Я использую Ubuntu Linux.

One Solution collect form web for “Как распознать черно-белые изображения?”

Если вы установите ImageMagick, вы можете использовать следующую команду для проверки того, что что-то имеет оттенки серого:

$ convert bw.jpg -format "%[colorspace]" info: Gray 

Установить:

 sudo apt-get install imagemagick 

Чтобы пройти через них все и двигаться:

 for i in /images/folder ; do if [ "$(convert $i -format "%[colorspace]" info:)" == "Gray" ]; then mv "$i" /images/folder/bw fi done 

Однако этот метод проверяет только цветовое пространство, которое использует изображение. Изображение может использовать полное цветовое пространство RGB, в то время как только на самом деле используется оттенки серого (в идеале они будут преобразованы в оттенки серого, чтобы быть оптимальными).

Для того, чтобы работать, это просто использование серых тонов, одним из вариантов является преобразование изображения в цвет HSL, а затем вычисление средней насыщенности изображения. Для истинного изображения в оттенках серого средняя насыщенность будет равна нулю. С изображениями в оттенках серого в jpg вы получите немного отклонения от идеального оттенка серого из-за артефактов, и, как правило, они не идеальны в зависимости от того, как они оказались черно-белыми.

Это изображение, например:

Черно-белые комиксы

Если мы преобразуем это в HSL и получим среднее насыщение:

 $ convert black-and-white-comics.jpg -colorspace HSL -channel g \ > -separate +channel -format "%[fx:mean]" info: 0.00781798 

Выходная цифра колеблется от 0 до 1, поэтому вам нужно будет определить порог, при котором вы считаете, что что-то должно быть серого в зависимости от ваших исходных файлов.

  • Songbird не запускается из-за GStreamer в Ubuntu 9.10
  • Как графический пульт дистанционного управления сервером Ubuntu?
  • Как установить обновленную версию PEAR / PHPUnit на Ubuntu?
  • Ubuntu 14.04 обнаружено проводное соединение, но нет доступа в Интернет
  • Ubuntu ведет себя так, как будто у меня есть два буфера обмена
  • Невозможно включить беспроводной Ubuntu 10.04
  • Что случилось с настройкой GRUB?
  • Фреймбуфер недоступен. Как установить устройство / dev / fb / 0 на Ubuntu?
  • Как добавить обычного пользователя в файл sudoers?
  • Как скопировать / вставить символы табуляции через буфер обмена в сеанс терминала на gnome / ubuntu
  • Linux keylogger без root или sudo! Это реально?
  • Установить ubuntu для удаленного доступа?
  • Interesting Posts

    Клонирование установки Windows (при использовании) на новый диск, не выходя из Windows

    Как я могу постоянно добавлять запись в переменную PATH системы через командную строку?

    Какую версию MS-DOS использует Rufus для создания загрузочных USB-накопителей?

    сетки-шаблонные области с изображением ASCII не работают

    Windows 7 ПК больше не идет в режим энергосбережения

    Как предотвратить открытие текущей папки пользователя при запуске Windows Explorer?

    Как перезапустить драйвер видеокарты в Windows 7?

    Как закрыть Google Chrome и сохранить его вкладки

    Как переопределить Office 2013 до 2010 года?

    Как редактировать файлы UTF-8 в vim на окнах

    Какие недостатки существуют при использовании памяти, которая быстрее, чем у материнской платы?

    2,5 "SSD в отсеке оптических дисков – как насчет производительности?

    Поиск DNS не работает, но nslookup работает

    Получение предупреждения: «« newdata »имеет 1 строку, но найденные переменные содержат 32 строки» в файле outlookа.lm

    Как компьютеры постоянно хранят данные?

    Давайте будем гением компьютера.