Library of programming functions mainly aimed at real-time vision

OpenCV for Mac

OpenCV for Mac

  -  211 MB  -  Open Source
  • Latest Version

    OpenCV 4.12.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.12.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.12.0 Screenshots

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

    OpenCV 4.12.0 Screenshot 1
  • OpenCV 4.12.0 Screenshot 2

What's new in this version:

Core Module:
- Added user-defined logger callback
- Added reinterpret() method to cv::Mat
- Fixed empty ND-array construction
- Fixed bug with int64 support for FileStorage
- Fixed cv::meanStdDev overflow for large images
- Useed HAL for cv::mean function too
- Vectorized cv::normalize / cv::norm
- Enabled SIMD_SCALABLE for exp and sqrt
- vectorized normDiff with universal intrinsics
- Refactored normDiff in hal_rvv and extended with support of more data types
- Further vectorized copyTo with mask
- Fix POWN OpenCL implementation
- Restored legacy universal intrinsics operators in a separate header
- Improved solveCubuc accuracy:
- Deprecated copyData Parameter in cv::UMat construction from std::vector and always copy data

Imgproc Module:
- Optimized and reduced memory consumption in cv::findContours
- Fixed integer overflow in cv::HoughLinesProbabilistic with very large input images
- Fixed several potential overflows in image warping
- Improved robustness for ellipse fitting
- Added cv::THRESH_DRYRUN flag to get adaptive threshold values without input thresholding
- Fixed cv::getPerspectiveTransform for singular case
- Optimized bayer2Gray with universal intrinsics
- Added optional mask to cv::threshold
- Accelerated cv::remap calculation with multi-threading, when cv::WARP_INVERSE_MAP is used
- Reworked HSV color conversion tables initialization in OpenCL branch to fix possible data raise
- Fixed bilateral filter's sigma color and sigma space issue
- Impoved performance of medianblur
- Added cv::getClosestEllipsePoints function to get the closest point on an ellipse
- Corrected IPP implementation for cv::distanceTransform results with single thread
- Fixed cv::matchTemplate with mask crash
- Added diamond structuring element to morphology operations
- Improved cv::intersectConvexConvex accuracy in corner cases

Calib3d module:
- Fixed inliers updating in homography estimation
- Added cv::solvePnPRansac implementation for the fisheye camera model
- Fixed different marker ordering with cv::findChessboardCornersSBWithMeta and cv::CALIB_CB_LARGER flag.
- Fixed logical mistake in FilterSpecklesImpl
- Optimized undistort points for the fisheye camera model
- Optimized new camera matrix estimation and some related functions
- Added warning if projected axes are out of camera frame in cv::drawAxes function
- Added image dimension check to avoid StereoSGBM non-determinism
- Fixed bugs in SQPNP orthogonalization and simplified column vectors copying

DNN Module:
- Added TFLite StridedSllice (without strides but just Slice) and enable strides for TF importers
- Added fusion handler of conv+eltwise in case of multi-output node (i.e. Split)
- Added new ops import in TFLite parser: SUB, SQRT, DIV, NEG, SQUARED_DIFFERENCE, SUM
- Fxied scalars and 1d tensors support in TFLite parser
- Reduced mumber of NHWC<->NCHW conversions in TFLite parser
- Added checks before getting latest pin in Net::Impl::getLatestLayerPin
- Added OpenVINO NPU support
- Added more operations to CANN backend

Objdetect module:
- Extend ArUcoDetector to run multiple dictionaries in an efficient manner
- Fixed rotated aruco marker board generation
- Fixed incorrect Aruco marker detection near image edge
- Fixed invalid vector access in QR de/encoder
- Fix QR code encoder with auto version
- Aded QRCode ECI encoding support
- Made ChAruco board consistency check optional

Photo Module:
- Added 16-bit support to cv::fastNlMeansDenoising and updated tests
- Local decolor pipeline optimization
- Fixed Triangle Weights used by Debevec algorithm being non zero at extremes
- Fixed NaNs in HDR Triangle Weights and Tonemapping and Update LDR Ground Truth in tutorial

VideoIO Module:
- Fixed invalid custom FFmpeg options handling provided with environment variable
- Fixed default cv::CAP_PROP_ORIENTATION_ATUO behaviour
- Improved camera opening performance when with DShow backed, if custom options are provided
- Added zoom support into Android native camera capture
- Fixed V4L frame size for non-BGR output
- Added Orbbec Gemini 330 camera support
- Fixed cv::VideoWriter failure on writing colorless images
- Fixed Android setCameraIndex issue

Imgcodecs:
- Extended image I/O API with metadata support
- Added in-memory animation encoding and decoding
- Added hidden frame support for Animated PNG
- Added GIF decode and encode for imgcodecs
- Added animated WebP Support
- Added GDAL multi-channel support
- Fixed AVIF linkage on Windows
- Significantly improved PNG and Animated PNG files handing
- Added several fixes for libspng integration
- Fixed memory leak in JpegXL decoder
- Added support for cv::IMREAD_UNCHANGED and other ImreadFlags into JpegXL implementation
- Implemented imdecode() for JpegXL to directly read from memory
- Added lossless compression support for JpegXL
- Fixed cv::imread() implementation for 16-bit png with libspng back-end

Highgui Module:
- displayOverlay doesn't disappear after timeout
- Fix closing of windows when using the Qt backend
- Fixed QT window resize regression

G-API module:
- Workaround for successfull append of OpenVINO Execution Provider: Moved creation of 'Ort::Env' before it
- Adding AddRgbFeature(), and improving robustness in ComputeRgbDistance
- Added MS Media Foundation availability check in G-API too

Video Module:
- Added trackers factory with pre-loaded dnn models

HAL:
- Extracted HAL implementations as dedicated folder
- Implemented new HAL for RISC-V RVV 1.0 platforms, see all changes by query
- Refactored OpenVX implementation as HAL
- Partially refactored Intel IPP integration as HAL
- Fixed HALs dependency from thre cv namespace
- Updated KleidiCV HAL for ARM to version 0.5
- Extended FastCV HAL for Qualcomm platforms
- Added new HAL entries for cv::sum

Python, Java and JavaScript bindings:
- Added conditional inclusion support to header parser
- Updated predefined_types.py
- Added bindings for animations
- Fix wrong python type hints for cv::imread
- Replaced tostring() and fromstring() call in tests and samples for compatibility with modern Python
- Replaced ndarray.ptp() with np.ptp() for NumPy 2.0 Compatibility
- Extended Java bindings generation in DNN
- Fixed std::vector<Point3f> handling in JS wrappers
- Added cv::VideoCapture buffered stream constructor into Java
- Extended bindings for cv::HoughLinesWithAccumulator
- Fixed Kotlin 2.0 internal error for unsafe coercions

Platforms support:
- Fixed OpenBLAS detection on Linux
- Fixed compatibility with CMake 4
- Fixed Android build with Vulkan support
- Fixed VSX intrinsics (Power) implementation
- Added CMake checks for getauxval and elf_aux_info for POWER architecture
- Fixed build for openBSD
- Added initial support for Nvidia Blackwell GPU arch in CUDA
- Fixed cv namespace dependency in Carotene HAL
- Fixed _DEBUG/NDEBUG handling across modules
- Fixed build for QNX 7.0
- Switched to statically linked FastCV
- Forced C++17 Standard for CUDA targets when CUDA Toolkit >=12.8
- Fixed build for Windows ARM64EC
- Fixed filesystem support under Cygwin environment