LINUX.ORG.RU

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

 ,


1

2

Задача — определить, что на изображении. Текст (например, скрин твиттера или фейсбука — в основном задача стоит отделять их), фото, диаграммы?

Есть такое в открытом виде?

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

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

★★★★★

Последнее исправление: KRoN73 (всего исправлений: 2)

Ответ на: комментарий от beastie

Да, OpenCV — термоядерная штука, ей точно по зубам. Но придётся изучать движок и делать всё с нуля. Хотелось бы что-то попроще и готовое :)

если нужна только классификация — bayes фильтр по какой-нибудь хистограмме

Вряд ли Байес тут будет хорошо работать. Вообще, для грубого детектирования только одного текста достаточно одной гистрограммы — посмотреть долю пикселей (0xffffff). Но тут мы снова утыкаемся в быстрое построение гистограммы. Наверное, действительно, придётся с ресайзом и попиксельным подсчётом :-/

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

Но тут мы снова утыкаемся в быстрое построение гистограммы.

Вот я тормоз: http://php.net/manual/en/imagick.getimagehistogram.php

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

Особенно, учитывая, что хотелось бы разделять текст и, например, диаграммы. В последних тоже будет большая доля белого... А, ещё надо на долю чёрного смотреть. В общем, буду экспериментировать с живыми данными...

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

утыкаемся в быстрое построение гистограммы

А в чем проблема-то? На лету преобразуешь RGB в серый восьмибитный и заполняешь себе гистограммку.

Это будет намного быстрей, чем тормозную жирную ненужноCV использовать!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от KRoN73

У меня была идея: проходимся по всем пикселям и строим хистограму цветности. Т.е. если у нас мало цветов (в основном белый, чёрный и синий) — это скорей всего скриншот фейсбука, если цветов много и все они разные — то это скорей всего фотография. И тут как раз Байес может имхо хорошо вписаться, если нужна не полная классификация, а надо например отсеять только скриншоты.

А если фильтров использовать несколько, то одни может узнавать фейсбук, а другой зимний ландшафт и т.д. ;)

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 2)
Ответ на: комментарий от KRoN73

Преобразовывай в HSV и строй гистограммы по H и V. Тогда сможешь заодно отделять ч/б фотки от цветных. Правда, отделить гистограммы/графики от фоток будет сложновато. Там уже более детальный анализ собственно изображения надо делать.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от beastie

Т.е. если у нас мало цветов

Ага, логично.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от i-rinat

Это — да. Скорее всего, если текст под углом, то это уже фото. Но OCR со словарём, всё же, куда большее усложнение :)

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от i-rinat

Он у меня скворца воробьем обозвал, лося - оленем. А Лазоревку корректно опознал.

kombrig ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.