Когда дело доходит до обнаружения лица, мы должны сначала понять классификатор функций HAAR. Честно говоря, классификатор функций HAAR представляет собой серию файлов XML, которые описывают характерные значения различных частей человеческого тела, таких как лица, глаза и т. Д.
haarcascade_eye.xml
haarcascade_eye_tree_eyeglasses.xml
haarcascade_frontalcatface.xml
HAARCASCADE_FRONTALCATFAICE_EXTEND.XML
haarcascade_frontalface_alt.xml
haarcascade_frontalface_alt_tree.xml
haarcascade_frontalface_alt2.xml
haarcascade_frontalface_default.xml
haarcascade_fullbody.xml
haarcascade_lefteye_2splits.xml
haarcascade_licence_plate_rus_16stages.xml
haarcascade_lowerbody.xml
haarcascade_profileface.xml
haarcascade_righteee_2splits.xml
haarcascade_russian_plate_number.xml
haarcascade_smile.xml
haarcascade_upperbody.xml
Загрузив различные файлы функций, соответствующий эффект обнаружения может быть достигнут.
Описание параметра функции DetectMultIscale в OpenCV3.2.0:
DetectMultiscale (Mat Image, MatofRect объекты, двойной масштаб, int minneighbors, int flags, размер minsize, размер максимального размера)
Изображение: изображение, которое должно быть обнаружено, обычно является серого (повышение эффективности)
Объекты: прямоугольная векторная группа обнаруженных объектов
ScaleFactor: масштабный коэффициент окна поиска в двух последовательных сканировании. По умолчанию 1,1, то есть каждое окно поиска расширяется на 10% в последовательности.
Minneighbors: минимальное количество соседних прямоугольников, которые составляют цель обнаружения (по умолчанию 3)
Флаги: либо используйте значение по умолчанию, либо используйте CV_HAAR_DO_CANY_PRUNING. Если установлено на CV_HAAR_DO_CANNY_PRUNING, функция будет использовать HANPY EDGE DETACTION для исключения областей с слишком большим количеством или слишком небольшим количеством краев, поэтому эти области обычно не будут той областью, где находится лицо
MinSize: минимальный диапазон полученной целевой области
maxSize: максимальный диапазон полученной целевой области
Пример обнаружения лица код:
import org.opencv.core.Core;import org.opencv.core.Mat;import org.opencv.core.MatOfRect;import org.opencv.core.Point;import org.opencv.core.Rect;import org.opencv.core.Scalar;import org.opencv.imgcodecs.Imgcodecs;import org.opencv.imgproc.imgproc; import org.opencv.objdetect.cascadeclassifier; public class facedeTect {public static void main (string [] args) {// todo Автогенерированный метод System.loadlibrary (core.native_library_name); System.out.println ("/nrunning facedetector"); Cascadeclassifier facedetector = new cascadeclassifier (); facedetector.load ("c: // программные файлы // opencv // источники // data // haarcascades // haarcascades // haarcascades_frontalface_alt.xml"); Mat image = imgcodecs.imread ("f: //1114.jpg"); MatofRect facedetections = new MatofRect (); facedetector.detectmultiscale (изображение, Facedetections); System.out.println (string.format ("обнаруженные %s лица", facedetections.toarray (). Length)); для (rect rect: facedetections.toarray ()) {imgproc.rectangle (изображение, новая точка (rect.x, rect.y), новая точка (rect.x + rect.width, rect.y + rect.height), новый скаляр (0, 255, 0)); } String filename = "f: //ouput.jpg"; Imgcodecs.imwrite (имя файла, изображение); }} Изображение источника и диаграмма результатов:
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.