Library of programming functions mainly aimed at real-time vision

OpenCV for Mac

OpenCV for Mac

  -  88.7 MB  -  Open Source
  • Latest Version

    OpenCV 4.13.0 LATEST

  • Review by

    Daniel Leblanc

  • Operating System

    macOS 10.12 Sierra or later

  • User Rating

    Click to vote
  • Author / Product

    OpenCV Team / External Link

  • Filename

    opencv-4.13.0-ios-framework.zip

OpenCV (Open Source Computer Vision Library) is released under a BSD license and hence it’s free for both academic and commercial use. It has C++, Python, and Java interfaces and supports Windows, Linux, Mac OS, iOS, and Android.

It was designed for computational efficiency and with a strong focus on real-time applications. Written in optimized C/C++, the library can take advantage of multi-core processing. Enabled with OpenCL, it can take advantage of the hardware acceleration of the underlying heterogeneous compute platform.

Adopted all around the world, OpenCV for Mac has more than 47 thousand people of the user community and an estimated number of downloads exceeding 14 million. Usage ranges from interactive art to mines inspection, stitching maps on the web, or through advanced robotics.

OpenCV for macOS (Open Source Computer Vision Library) is an open-source computer vision and machine learning software library. It was built to provide a common infrastructure for computer vision applications and to accelerate the use of machine perception in commercial products. Being a BSD-licensed product, It makes it easy for businesses to utilize and modify the code.

The library has more than 2500 optimized algorithms, which includes a comprehensive set of both classic and state-of-the-art computer vision and machine learning algorithms.

These algorithms can be used to detect and recognize faces, identify objects, classify human actions in videos, track camera movements, track moving objects, extract 3D models of objects, produce 3D point clouds from stereo cameras, stitch images together to produce a high-resolution image of an entire scene, find similar images from an image database, remove red eyes from images taken using flash, follow eye movements, recognize scenery and establish markers to overlay it with augmented reality, etc.

It has more than 47 thousand people of the user community and an estimated number of downloads exceeding 14 million. The library is used extensively in companies, research groups, and governmental bodies.

Open CV has C++, Python, Java, and MATLAB interfaces and supports Windows, Linux, Android, and macOS. It leans mostly towards real-time vision applications and takes advantage of MMX and SSE instructions when available.

A full-featured CUDA and OpenCL interfaces are being actively developed right now. There are over 500 algorithms and about 10 times as many functions that compose or support those algorithms. Open CV is written natively in C++ and has a templated interface that works seamlessly with STL containers.

How to Use
  • Install Xcode and Homebrew
  • Use Homebrew to install Python and OpenCV
  • Import OpenCV in your Python scripts
  • Test OpenCV with sample code
  • Use OpenCV for image or video processing
  • Explore OpenCV functions via documentation
  • Build projects using OpenCV modules
  • Update OpenCV regularly for new features
  • Use virtual environments for project isolation
  • Debug and optimize with Xcode tools
System Requirements
  • macOS 10.15 (Catalina) or later
  • Xcode Command Line Tools
  • Homebrew package manager
  • Python 3.8 or later
  • At least 4 GB RAM (8 GB recommended)
  • 2 GB free disk space
  • Intel or Apple Silicon CPU
PROS
  • Easy integration with Python
  • Extensive computer vision library
  • Cross-platform compatibility
  • Supports real-time processing
  • Large active community support
CONS
  • Sparse Mac-specific documentation
  • Occasional build or install issues
  • Limited GUI features for Mac users
  • Requires manual setup for full use
Also Available: Download OpenCV for Windows

Why is this app published on FileHorse? (More info)
  • OpenCV 4.13.0 Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    OpenCV 4.13.0 Screenshot 1
  • OpenCV 4.13.0 Screenshot 2

What's new in this version:

Core module:
- Modified Input/OutputArray methods to handle 'std::vector' or 'std::vector<std::vector>' in more accurate way
- Made cuda::GpuMatND compatible with InputArray/OutputArray
- Forced output type for empty matrices where it's defined in API
- Added std::vector length check Input/OutputArray
- Added 16-bit LUT and corresponding HAL entrypoint
- Add cv::Mat::copyAt for for ROI operation
- Extended JSON support in cv::FileStorage: null parsing
- Added support parsing null in JSON parser in cv::FileStorage
- Fixed cv::solveCubic numerical instability via coefficient normalization
- Fixed tempfile race condition on Windows
- Restore parallel framework name on failure attempt
- Dropped OPENCV_FOR_OPENMP_DYNAMIC_DISABLE environment variable in favor of standard OMP_DYNAMIC
- Enabled fp16 conversions, but disabled NEON FP16 arithmetics on Windows for ARM
- Fixed dot product accumulation causing NORM test failures on Windows ARM64
- Added several performance optimizations for Windows on ARM:
- Fixed missing vec_cvfo on IBM POWER9 due to unavailable VSX float64 conversion
- Fix in-place flip in HAL for RISC-V RVV
- Added inRange HAL entry point
- Disabled IPP with AVX512 in cv::compare because of performance regression

Imgproc module:
- Added Iterative Phase Correlation
- Added cv::minEnclosingConvexPolygon
- Improved near-zero convexity handling in cv::convexHull
- Kept cv::convexHull output indices monotone if possible
- Fixed overflow in connected components
- Corrected cv::minAreaRect to follow documentation (force angle to range [-90, 0))
- Increased minAreaRect accuracy with doubles
- Added cv::CLAHE::BitShift option
- Fixed cv::minEnclosingCircle
- Fixed standard cv::HoughLines output shift for rho.
- Fixed LINE_4/LINE_8 swap in cv::drawContours
- Fixed bug in approxPolyDP: calculate distance to a segment, not to a line
- Various performance optimizations for Gaussian Blur, including AVX512
- Added CV_SIMD_SCALABLE branch to pointSetBoundingRect
- Added Canny, Scharr and Sobel for riscv-rvv hal
- Optimized ThickLine() for distant points
- Fixed heap-buffer-overflow in stackBlur
- Fixed the out-of-bounds read in cv::bilateralFilter for 32f images
- Fixed memory leak in ipp_warp function
- Set limitation to IPP Bilateral Filter tiles number to avoid too small tiles
- Fixed incorrect implementation of multi-threaded call for warp perspective in IPP HAL
- Added stateless HAL for filters and morphology

Imgcodecs module:
- Extended metadata support in Jpeg (ICCP and XMP)
- Added OpenEXR multispectral read/write support
- Added strict validation for encoding parameters
- Relaxed decoding size limit to over 1 GiB for several formats
- Added IMWRITE_PNG_ZLIBBUFFER_SIZE option support for PNG
- Fixed memory leak in WebP backend
- Added workaround for image flipping bug in older GDAL FITS drivers
- Added support for 32bpp BMP with BI_BITFIELDS
- Fixed several overflow and out-of-bound access issues in BMP
- Fixed potential crashes in PNG found by fuzzer. Namely 429429085, 429645379, 430091585
- Fixed several potential overflows and error handling mistakes in PNG
- Fixed alpha handling for blending in PNG format
- Set matrixCoefficients to UNSPECIFIED for monochrome images in AVIF
- Added safety checks for AVIF decoder and encoder

VideoIO module:
- Added option to open camera device by index through FFmpeg
- Extended Orbbec SDK support: added timestamps
- Extended Aravis SDK support: allowed system-wide installation of SDK
- Added macOS support for Orbbec Gemini330 camera
- Fixed frame seeking with negative DTS values in FFMPEG backend
- Fixed CvCapture_FFMPEG::setProperty(CAP_PROP_POS_*) followed by getProperty
- Added Raspberry Pi 4 and 5 V4L2 Stateless HEVC Hardware Acceleration with FFmpeg
- Optimized FFmpeg VideoCapture with swscale threads option
- Fix return code from CvVideoWriter_FFMPEG::writeFrame() when encapsulating
- Added OPENCV_FFMPEG_SKIP_LOG_CALLBACK to preserve custom FFmpeg logging
- Get code to compile without FFMPEG's libavdevice
- catch _com_error exceptions to suppress debugger flooding
- Fixed picture_sw object leak in ffmpeg backend with hardware codecs.
- videoio(dshow): Fix incorrect mapping for White Balance Temperature (CAP_PROP_WB_TEMPERATURE) property
- Fixes a crash on iOS when calling VideoWriter::release() in OpenCV 4.12.0

Features2D module:
- Fixed ORB inconsistency for masks with values differs from 255
- Fixed pointer arithmetic in BRISK corner traversal
- Added heuristic to allocate buffer for FAST features depending on input image resolution
- Optimized AGAST for Windows on ARM
- Added FAST to RISC-V RVV HAL

Objdetect module:
- Added pixel-based confidence in ArUco marker detection
- Improved multiple QR codes detection with QRCodeDetector::detectAndDecodeMulti
- Fixed to prevent QR code decoding from throwing on degenerate source points
- Fix QRCodeDetector::detectAndDecode crash in case of inconsistent detection
- Remove floating point arithmetic from angle computation in QR codes
- Speedup ChArUco by avoiding temporary copies
- Fixed stack-use-after-scope errors in charuco detector
- Used fast-path with INTER_LINEAR resize when ALGO_HINT_APPROX is used in HOG 27706

DNN module:
- Added more layers support: ONNX randomNormalLike
- Allowed protobuffer message to be compiled with LITE_RUNTIME
- Fixed ONNX Convolution node parsing when kernel size is implicit
- Fixed Windograd flag handling in convolution layer
- Added NEON intrinsics implementation of fastGEMM1T function
- Add SVE optimized fastGEMM1T function and SVE dispatch
- Fixed heap-buffer-overflow in DNN NaryEltwiseLayer
- Improved performance of softmax_3d with loop unrolling

Calib3d module:
- Added estimateTranslation2D()
- Replaced Gao P3P with Ding P3P algorithm
- Added QR decomposition option to stereoCalibrate
- Improved fisheye::undistortPoints convergence
- Fixed invalid memory access in USAC
- Fixed out of bounds in calibrateAndNormalizePointsPnP

Stitching module:
- Fixed multiband blender memory leak 27333
- Pass warp parameters by value to avoid CUDA constant races
- Optimized fast.cpp on Windows ARM with loop unrolling

HighGUI module:
- Fixed linking for HighGUI against Qt 6.9 and newer
- Fixed Qt HighGUI lifecycle issue when external QApplication exists
- Fixed memory leak in CvWindow Qt back-end

G-API module:
- Added G-API custom stream sources in Python
- Implemented cfgEnsureNamedTensors option to OpenVINO Params
- Implemented cfgClampOutputs option to OpenVINO Params
- Renamed WorkloadType::notify() -> WorkloadType::set()
- Added support to set workload type dynamically in both OpenVINO and ONNX OVEP
- Fixed null pointer dereference in G-API stateful kernels
- Updated deprecated ov::element::undefined

Video module:
- Added multichannel support for findTransformECC and computeECC
- Add optional template mask for findTransformECC
- Added optional Known Foreground Mask for Background Subtractors
- Add setCoarsestScale to DISOpticalFlow
- Fixed potential pointer overflow in Farnback optical flow

ML module:
- Fixed ml::KDTree::findNearest

Photo module:
- Added 16U and 32F support in merge functions in photo module

JavaScript bindings:
- Added option to wrap opencv_contrib into JS too
- Fixed string property bindings in JS generator
- Update helpers.js to include .delete
- Added deep copy behavior for Mat.clone()
- Removed deprecated DEMANGLE_SUPPORT option
- Tuned CONV_NR_FP32 size for WASM
- Added large scalar kernel for fastconv
- Fixed generation when returned class and function are in a namespace
- Fixed JS bindings for namespaced Ptr factory return types

Python bindings:
- Tuned Python bindings for logging
- Marked Feature2D.detectAndCompute mask as optional in Python type stubs
- Marked distCoeffs/R/D as optional in calib3d functions
- Added DLPACK support
- Fixed memory leaks in pybindings
- Add PathLike type hints for args annotated with CV_WRAP_FILE_PATH
- Fixed memory leak in pyopencv_to for path-like objects
- Tunned Python bindings: use export_name as resolved typename for AliasTypeNode
- python: fix pytest-cov false warnings by using compile() with full file path in exec_file_wrapper
- Fixed python scalar typing issues
- Fixed bug in ifdef state machine in header parser for bindings
- Wrap GridType field in cv::findCirclesGrid parameters structure

Java bindings:
- Introduced option to generate Java code with new Cleaners interface or old finalize()
- Enabled Java wrapper generation for Vec4i
- Added Java wrapper support for List<List>

    Applications and Tools:
- Improved interactive calibration tool: added option to select camera backend
- Aligned calibration tools and samples output fields to make them reusable in further steps
- Used calibration board imperfectness correction only for the cases where it's applicable
- Added option to define Aruco index offset in pattern generator
- Moved pattern generator to apps and rewrote tutorial
- Fix charuco_board_pattern in generate_pattern.py
- Updated Tutorial PSNR for identical images

Build:
- Integrated KleidiCV version 0.7 with Mac and Linux support (enabled by default)
- Integrated IPP ICV with AWX512 support.
- Fixed issues identified by PVS Studio
- Added support MS Visual Studio 2026 support
- Added CUDA 13.0 support
- Fixed OpenBLAS detection
- Added reproducible builds support by making host system version optional
- Fixed build issue with some old GCC versions
- Fixed unicode tracing symbols with QT
- Fixed eigen diagnostics for versions after v3.4.0
- Added CMake define option to enforce IPP calls in IPP HAL