Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AttributeError: module 'cv2.cv2' has no attribute 'freetype' in OpenCV

I'm using a docker container with minimal packages installed. I installed opencv-contrib-python using pip3 install opencv-contrib-python and it installed the latest build 4.1.025 and have verified that it was running and my program was ok with it. However, now I need the freetype module but when I try:

import cv2 as cv
ft = cv.freetype.createFreeType2()

It throws the AttributeError as in the title. I tried reinstalling different versions namely: 4.0.0.21, 4.0.1.23, 4.0.1.24, 4.1.0.25 to no avail. I am using the headless version mainly(since I'm using docker and I don't need any gui functionality). Another thing I found out was not all the modules can be imported I have tried (ccalib, tracking, sfm, xobjdetect etc) and these modules throw the same error. Does this mean that some modules are not available through the pip3 installation? Thank you.

like image 986
Fer-de-lance Avatar asked May 03 '19 00:05

Fer-de-lance


1 Answers

I'm pretty late to this issue, but I hope this helps someone.

I've added links to an easy to follow guide at the bottom.

Here are the essential steps, you'd need to follow:

  • Install CMake & Git (if you haven't already)
  • In a folder git vcpkg (git clone https://github.com/Microsoft/vcpkg.git)
  • Install freetype and harfbuzz using vcpkg commandline
    • bootstrap-vcpkg.bat
    • vcpkg install freetype:x64-windows
    • vcpkg install harfbuzz:x64-windows
  • Locate vcpkg.cmake file and note down its path
  • Ensure C++ build tools are installed in Visual Studio 19
  • Download and extract OpenCV & OpenCV contrib
  • Create a empty dir called "build" inside the extracted OpenCV
  • Modify CMakeLists.txt inside freetype module folder in opencv-contrib (Link)
  • Modify and run the following command:
    • cmake -G "Visual Studio 16 2019" -B D:\code\downloads\opencv-4.3.0\build -D BUILD_NEW_PYTHON_SUPPORT=ON -D BUILD_PYTHON_SUPPORT=ON -D BUILD_opencv_python3=yes -D PYTHON_DEFAULT_EXECUTABLE=D:\anaconda3\python.exe -D OPENCV_SKIP_PYTHON_LOADER=ON -D PYTHON_LIBRARY=D:\anaconda3\libs\python36.lib -D OPENCV_EXTRA_MODULES_PATH=D:\code\downloads\opencv_contrib-4.3.0\modules -D OPEN_CV_FORCE_PYTHON_LIBS=yes -D CMAKE_TOOLCHAIN_FILE=D:\code\downloads\vcpkg\scripts\buildsystems\vcpkg.cmake
  • Use CMake GUI to make changes referenced at this link (LINK)
  • Once necessary changes are made, click Configure and Generate.
  • Building DEBUG & RELEASE versions using Visual Studio 19
  • Test the installation by importing cv2.freetype from the environment you setup.

There's a comprehensive written guide over here:

  • https://github.com/BabaGodPikin/Build-OpenCv-for-Python-with-Extra-Modules-Windows-10

Also, I've made a video inspired by the same tutorial, which can be found here:

  • https://youtu.be/9YUDx3qzKwY

I would recommend watching the video and keeping this guide open on the side.

Cheers!

like image 54
Saumya Banthia Avatar answered Nov 08 '22 05:11

Saumya Banthia