programming language/C++
mac m2 - opencv์ cmake ๋น๋
moaoh
2024. 11. 12. 18:43
๋ชฉํ
๋ด๊ฐ ์์ฑํ๋ ํ๋ก์ ํธ ๋ด๋ถ์์ opencv๋ฅผ ์ค์นํ๊ณ cmake๋ฅผ ํตํด
๋ด๊ฐ ์ง์ ์์ฑํ main.cpp ๋ด๋ถ์์ opencv๋ฅผ ์ฌ์ฉํ๋๊ฒ์ด ๋ชฉํ์ด๋ค.
project
- opencv
- build
- src
- main.cpp
- main.hpp
- CMakeLists.txt
opencv clone ์งํ
git clone https://github.com/opencv/opencv.git
opencv ๋ด๋ถ์์ cmake ๋ฐ make ์งํ
cd opencv
mkdir build
cd build
cmake ..
make -j4
- make -j4 : ๋ฅผ ์ฌ์ฉํ๋ฉด 4๊ฐ๋ก ๋ณ๋ ฌ ๋น๋๊ฐ ๊ฐ๋ฅํ์ง๋ง ํ์์ ์์ ํ๊ฒฝ์์๋ ์ฌ์์ด ๋ถ์กฑํ์ฌ -j2 ํน์ ๊ทธ๋ฅ make๋ก ์งํํ์๋ค.
project/CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(openCVSample)
set(OpenCV_DIR "${CMAKE_SOURCE_DIR}/opencv/build")
find_package(openCVSample REQUIRED)
add_executable(openCVSample
src/main.cpp
)
target_include_directories(openCVSample PRIVATE ${OpenCV_INCLUDE_DIRS})
target_link_libraries(openCVSample PRIVATE ${OpenCV_LIBS})
- ๋น๋๊ฐ ์๋ฃ๋ ์ดํ์๋ ๋์ ํ๋ก์ ํธ์ opencv๋ฅผ ์ฐ๋ํ๊ธฐ์ํด CMakeLists.txt๋ฅผ ์์ฑํด์ค๋ค.
src/main.cpp
#include <opencv2/opencv.hpp>
#include <iostream>
int main() {
// OpenCV ๋ฒ์ ์ถ๋ ฅ
std::cout << "OpenCV version: " << CV_VERSION << std::endl;
// ์ด๋ฏธ์ง ์์ฑ ๋ฐ ์ ์ฅ ํ
์คํธ
cv::Mat image = cv::Mat::zeros(100, 100, CV_8UC3);
cv::circle(image, cv::Point(50, 50), 40, cv::Scalar(255, 0, 0), -1);
cv::imwrite("test.jpg", image);
// ์ฑ๊ณต ์ฌ๋ถ ํ์ธ
std::cout << "Image created and saved as test.jpg" << std::endl;
return 0;
}
- ๊ฐ๋จํ openCV ํ ์คํธ์ฝ๋ ์์ฑ
ํ ์คํธ
mkdir build
cd build
cmake ..
make
./openCVSample
>> OpenCV version: 4.10.0-dev
>> Image created and saved as test.jpg

์ ์์ ์ผ๋ก ๋์ ๋ฐ test.jpg๊ฐ ์์ฑ๋ ๋ชจ์ต์ ํ์ธํ ์ ์๋ค.