Как (с помощью чего) определить четкость фото и «черные» фото?
Всем привет!
Каким образом в C# в момент сохранения файла на сервер можно проверить его на четкость (изображение не размыто) на то, что это вообще изображение, а не черное, белое или красное фото (например, пальцем закрыта камера)?
Черные фото – просто среднюю яркость всех пикселей оценить.
Четкость – пройтись highpass фильтром и оценить количество далёких от середины значений. Радиус подобрать относительно размера фото: 1/50, 1/100 – какого размера четкие детали обязательно должны быть на снимке?
Программист, математик, задрот и даже чуть инженер
Однотонные изображения элементарно отсеивается средне-квадратичным.
Четкость зависит от множества факторов. Однако есть вариант с градиентами: они "должны" иметь распределение с пологими границами. Можете погуглить что-нибудь такое, вроде даже на хабре было. ЕМНИП, этот метод крайне эффективен, однако есть способ и попроще - банальное преобразование Фурье. В случае размытого изображения оно должно быть более плавным и иметь низкий сигнал на высоких частотах.