Hi,
As a hobbyist developer, I made an small app in Python that uses Willow/OpenCV to detect faces in pictures. I am now trying to package my app with Flatpak, so I want to build OpenCV with the minimal set of functionalities.
I first tried the following build flags:
"-DBUILD_EXAMPLES=OFF"
"-DBUILD_TESTS=OFF"
"-DBUILD_DOCS=OFF"
"-DBUILD_PERF_TESTS=OFF"
"-DBUILD_NEW_PYTHON_SUPPORT=ON"
"-DBUILD_ZLIB=OFF"
"-DOPENCV_BUILD_3RDPARTY_LIBS=OFF"
"-DINSTALL_C_EXAMPLES=OFF"
"-DINSTALL_PYTHON_EXAMPLES=OFF"
"-DBUILD_opencv_core=ON"
"-DBUILD_opencv_imgproc=ON"
"-DBUILD_opencv_imgcodecs=ON"
"-DBUILD_opencv_objdetect=ON"
"-DBUILD_opencv_calib3d=OFF"
"-DBUILD_opencv_features2d=ON"
"-DBUILD_opencv_flann=ON"
"-DBUILD_opencv_dnn=ON"
"-DBUILD_opencv_photo=OFF"
"-DBUILD_opencv_java=OFF"
"-DBUILD_opencv_java_bindings_generator=OFF"
"-DBUILD_opencv_js=OFF"
"-DBUILD_opencv_python2=OFF"
"-DBUILD_opencv_python3=ON"
"-DBUILD_opencv_python_bindings_generator=ON"
"-DBUILD_opencv_shape=OFF"
"-DBUILD_opencv_highgui=OFF"
"-DBUILD_opencv_superres=OFF"
"-DBUILD_opencv_stitching=OFF"
"-DBUILD_opencv_videostab=OFF"
"-DBUILD_opencv_videoio=OFF"
"-DBUILD_opencv_video=OFF"
"-DBUILD_opencv_apps=OFF"
"-DBUILD_opencv_gapi=OFF"
"-DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.9.so"
"-DWITH_PROTOBUF=ON"
"-DWITH_1394=OFF"
"-DWITH_VTK=OFF"
"-DWITH_DIRECTX=OFF"
"-DWITH_DSHOW=OFF"
"-DWITH_EIGEN=OFF"
"-DWITH_FFMPEG=OFF"
"-DWITH_GSTREAMER=OFF"
"-DWITH_GTK=OFF"
"-DWITH_IPP=OFF"
"-DWITH_JASPER=OFF"
"-DWITH_JPEG=ON"
"-DWITH_MATLAB=OFF"
"-DWITH_OPENJPEG=OFF"
"-DWITH_OPENEXR=OFF"
"-DWITH_OPENNI=OFF"
"-DWITH_OPENMP=OFF"
"-DWITH_PNG=OFF"
"-DWITH_PVAPI=OFF"
"-DWITH_WIN32UI=OFF"
"-DWITH_QT=OFF"
"-DWITH_QUICKTIME=OFF"
"-DWITH_QT_OPENGL=OFF"
"-DWITH_TBB=OFF"
"-DWITH_TIFF=OFF"
"-DWITH_UNICAP=OFF"
"-DWITH_V4L=OFF"
"-DWITH_VFW=OFF"
"-DWITH_VIDEOINPUT=OFF"
"-DWITH_XINE=OFF"
"-DWITH_VA_INTEL=OFF"
"-DWITH_GPHOTO2=OFF"
"-DWITH_WEBP=OFF"
"-DWITH_IMGCODEC_HDR=OFF"
"-DWITH_IMGCODEC_SUNRASTER=OFF"
"-DWITH_IMGCODEC_PXM=OFF"
"-DWITH_CUDA=OFF"
"-DWITH_CUFFT=OFF"
"-DWITH_CUBLAS=OFF"
"-DWITH_NVCUVID=OFF"
"-DWITH_OPENCL=OFF"
"-DWITH_OPENCL_SVM=OFF"
"-DWITH_OPENCLAMDFFT=OFF"
"-DWITH_OPENCLAMDBLAS=OFF"
"-DWITH_OPENJPEG=OFF"
"-DCV_ENABLE_INTRINSICS=OFF"
"-DCV_DISABLE_OPTIMIZATION=ON"
But when I ran my software it failed with the following error: module 'cv2' has no attribute 'CascadeClassifier'
.
I then built OpenCv with all flags ON
and my program worked. Could someone tell me which flag needs to be ON
so that CascadeClassifier
is available but without having all the bells and whistles? Also, do not hesitate if you think I should toggle other build flags.
Regards,
Yvan