일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Webpack
- mysql 5.5
- MySQL
- Spring Batch
- log_bin
- log4j2
- JavaScript
- upgrade
- Effective Java 3/e
- nodejs
- REACT
- 퀵소트
- regex
- Chunk
- current_date
- npm
- expire_logs_days
- 정규표현식
- Regular expression
- migration
- Effective Java
- REACTJS
- update
- git
- spring cloud
- spring
- java
- Node
- eslint
- Express
- Today
- Total
내 세상
[Mac OS] OpenCV 이전 버전 Brew로 설치하기. 본문
아래의 예시는 MacOS에 OpenCV 3.4.2 버전을 설치하는 방법임.
이전 버전의 git history를 확인해야 하기 때문에 git clone을 진행함.
git clone https://github.com/Homebrew/homebrew-core.git
cd homebrew-core
위의 경로로 이동하여 아래의 명령어를 통해 commit id를 확인함.
git --no-pager log --pretty=oneline -- Formula.opencv.rb | grep 3.4.2
아래의 결과를 확인할 수 있음.
664f1dfde0ac86efe5dde9b8e6aa358d61641d33 opencv: update 3.4.2 bottle.
06eae891074e0b879e742bf54560f89a11f183df opencv: update 3.4.2 bottle.
5d788ad44b7bfda6a99ce7bb3c63b8c616fe5c02 opencv 3.4.2
Commit ID의 앞자리 8자리를 입력하여 해당 버전의 루비스크립트를 참조해서 현재 파일을 수정해야함.
아래 5d788ad4는 5d788ad44b7bfda6a99ce7bb3c63b8c616fe5c02 opencv 3.4.2 의 앞 8자리임.
https://raw.githubusercontent.com/Homebrew/homebrew-core/5d788ad4/Formula/opencv.rb
이제 brew를 사용하여 package install 정보를 수정해주어야 함.
brew edit opencv
아래의 내용으로 수정해주면 됨. 아래의 빨간 색으로 표시된 부분이 수정/추가 된 부분임.
class Opencv < Formula desc "Open source computer vision library" homepage "https://opencv.org/" url "https://github.com/opencv/opencv/archive/3.4.2.tar.gz" sha256 "81dbd5e7e9f8a4c936b94629bf4765745942a1d634ae38ec08bc57b73b28ffc5" revision 2
bottle do sha256 "0db1ccdfadbedd53d2dbf59d05321ce7fab22130784df3a76db10dc3851481e4" => :high_sierra sha256 "91541d1656691eb1944c4ab8cf37d055b66c78aae49306928a87aca3bc0d8367" => :sierra sha256 "9d5b496cf6c95ddf2ea16de69e0898cccd5b4753014a36394bcc90787691ed78" => :el_capitan end
depends_on "cmake" => :build depends_on "pkg-config" => :build depends_on "eigen" depends_on "ffmpeg" depends_on "glog" depends_on "harfbuzz" depends_on "jpeg" depends_on "libpng" depends_on "libtiff" depends_on "numpy" depends_on "openexr" depends_on "python" depends_on "python@2" depends_on "tbb"
resource "contrib" do url "https://github.com/opencv/opencv_contrib/archive/3.4.2.tar.gz" sha256 "45a52764ebd2558fa0b7fd8dc47379b37dd0956d912abbf7c786228374fdf60d" end
def install ENV.cxx11 ENV.prepend_path "PATH", Formula["python@2"].opt_libexec/"bin"
resource("contrib").stage buildpath/"opencv_contrib"
# Reset PYTHONPATH, workaround for https://github.com/Homebrew/homebrew-science/pull/4885 ENV.delete("PYTHONPATH")
py2_prefix = `python2-config --prefix`.chomp py2_lib = "#{py2_prefix}/lib"
py3_config = `python3-config --configdir`.chomp py3_include = `python3 -c "import distutils.sysconfig as s; print(s.get_python_inc())"`.chomp py3_version = Language::Python.major_minor_version "python3"
args = std_cmake_args + %W[ -DCMAKE_OSX_DEPLOYMENT_TARGET= -DBUILD_JASPER=OFF -DBUILD_JPEG=ON -DBUILD_OPENEXR=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_PNG=OFF -DBUILD_TESTS=OFF -DBUILD_TIFF=OFF -DBUILD_ZLIB=OFF -DBUILD_opencv_hdf=OFF -DBUILD_opencv_java=ON -DBUILD_opencv_text=OFF -DOPENCV_ENABLE_NONFREE=ON -DOPENCV_EXTRA_MODULES_PATH=#{buildpath}/opencv_contrib/modules -DWITH_CUDA=OFF -DWITH_EIGEN=ON -DWITH_FFMPEG=ON -DWITH_GPHOTO2=OFF -DWITH_GSTREAMER=OFF -DWITH_JASPER=OFF -DWITH_OPENEXR=ON -DWITH_OPENGL=OFF -DWITH_QT=OFF -DWITH_TBB=OFF -DWITH_VTK=OFF -DWITH_IPP=OFF -DBUILD_opencv_python2=ON -DBUILD_opencv_python3=ON -DPYTHON2_EXECUTABLE=#{which "python"} -DPYTHON2_LIBRARY=#{py2_lib}/libpython2.7.dylib -DPYTHON2_INCLUDE_DIR=#{py2_prefix}/include/python2.7 -DPYTHON3_EXECUTABLE=#{which "python3"} -DPYTHON3_LIBRARY=#{py3_config}/libpython#{py3_version}.dylib -DPYTHON3_INCLUDE_DIR=#{py3_include} ]
# The compiler on older Mac OS cannot build some OpenCV files using AVX2 # extensions, failing with errors such as # "error: use of undeclared identifier '_mm256_cvtps_ph'" # Work around this by not trying to build AVX2 code. if MacOS.version <= :yosemite args << "-DCPU_DISPATCH=SSE4_1,SSE4_2,AVX" end
args << "-DENABLE_AVX=OFF" << "-DENABLE_AVX2=OFF" unless MacOS.version.requires_sse42? args << "-DENABLE_SSE41=OFF" << "-DENABLE_SSE42=OFF" end
mkdir "build" do system "cmake", "..", *args system "make" system "make", "install" system "make", "clean" system "cmake", "..", "-DBUILD_SHARED_LIBS=OFF", *args system "make" lib.install Dir["lib/*.a"] lib.install Dir["3rdparty/**/*.a"] end end
test do (testpath/"test.cpp").write <<~EOS #include <opencv2/opencv.hpp> #include <iostream> int main() { std::cout << CV_VERSION << std::endl; return 0; } EOS system ENV.cxx, "-std=c++11", "test.cpp", "-I#{include}/opencv3", "-o", "test" assert_equal `./test`.strip, version.to_s
["python2.7", "python3"].each do |python| output = shell_output("#{python} -c 'import cv2; print(cv2.__version__)'") assert_equal version.to_s, output.chomp end end end |
'Technical > Mac OS' 카테고리의 다른 글
[Mac OS] 터미널 파일과 디렉토리 색상 다르게 하기 (0) | 2019.02.15 |
---|