СкачатьOpenCV
здесь сOpenCV — 2.4.13.6Например, здесь2.4.13.6На самом деле это должно быть2.4.13.7(последняя версия версии 2.х), потому что на официальном сайте их две2.4.13.6версия, одна была выпущена в 2018 году, а другая - в 2019 году.
Возможно, чиновник ошибся.
отWindowsПлатформа как пример
Адрес загрузки версии OpenCV для Windows
Установить и настроить переменные среды
Установить
(немного)
C:\tools\opencv
Настроить переменные среды
Он должен совпадать, иначе вам придется скинуть скомпилированный exe в соответствующий каталог bin для запуска
Что у меня есть здесьC:\tools\opencv\build\x64\vc14\bin
Настроить среду разработки
Visual Studio 2019
Новый проект
Настройка свойств проекта
Протестировано вVS2022Этот шаг не требуется в (настроить*d.lib
список имен файлов), но в предыдущих версиях (VS2019) сообщит об ошибке, указывающей, что символ ссылки не может быть найден.
*d.lib
серединаdОтносится кdebug, я упал (*.lib
) файлы все перечислены, что может вызвать странные проблемы, такие как отображение картинок, будет сообщено об ошибке, что то же самое, что и когда картинка не может быть найдена, потому что программа используетreleaseбиблиотека.
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat image = imread("D:/2222.jpg", CV_LOAD_IMAGE_COLOR);
// 创建显示图文件窗口
namedWindow("Display window", CV_WINDOW_NORMAL);
// 在窗口内显示图文件
imshow("Display window", image);
// 窗口等待按键
waitKey(0);
return 0;
}
CLion
CMakeLists.txt
cmake_minimum_required(VERSION 3.20)
project(OpenCV)
set(CMAKE_CXX_STANDARD 14)
# 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
add_executable(
OpenCV
main.cpp
)
include_directories(OpenCV C:\tools\opencv\build\include)
target_link_libraries(OpenCV C:\tools\opencv\build\x64\vc14\lib\*d.lib)
main.cpp
#include <opencv2/core/core.hpp>
#include<opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
#define w 400
int main(int argc, char** argv)
{
Mat image = Mat::zeros(w, w, CV_8UC3);
// 绘制矩形
rectangle(image, Point(w / 4, w / 4), Point(3 * w / 4, w / 4 * 3), Scalar(0, 0, 255), 3, 4);
// 绘制圆形
circle(image, Point(w / 2, w / 2), w / 4, Scalar(0, 255, 0), 3, CV_AA);
// 绘制椭圆
ellipse(image, Point(w / 2, w / 2), Size(w / 4, w / 8 * 3), 0, 0, 360, Scalar(255, 0, 0), 3);
ellipse(image, Point(w / 2, w / 2), Size(w / 4, w / 8 * 3), 45, 0, 360, Scalar(255, 0, 0), 3);
ellipse(image, Point(w / 2, w / 2), Size(w / 4, w / 8 * 3), 90, 0, 360, Scalar(255, 0, 0), 3);
ellipse(image, Point(w / 2, w / 2), Size(w / 4, w / 8 * 3), 135, 0, 360, Scalar(255, 0, 0), 3);
// 绘制直线
Point point_left_up = Point(w / 8, w / 8);
Point point_left_bottom = Point(w / 8, w / 8 * 7);
Point point_right_up = Point(w / 8 * 7, w / 8);
Point point_right_bottom = Point(w / 8 * 7, w / 8 * 7);
Scalar line_color = Scalar(100, 255, 89);
int thickness = 3;
line(image, point_left_up, point_left_bottom, line_color, thickness);
line(image, point_right_up, point_right_bottom, line_color, thickness);
line(image, point_left_bottom, point_right_bottom, line_color, thickness);
line(image, point_right_up, point_left_up, line_color, thickness);
line(image, point_left_up, point_right_bottom, line_color, thickness);
line(image, point_left_bottom, point_right_up, line_color, thickness);
// 用线画点
line(image, Point(w / 2, w / 2), Point(w / 2, w / 2), line_color, 40);
// 用圆画点
//circle(image, Point(w / 2, w / 2), 50, Scalar(100, 200, 255), -1);
circle(image, Point(w / 2, w / 2), 50, line_color, -1);
namedWindow("image", CV_WINDOW_AUTOSIZE);
imshow("image", image);
// 窗口等待按键
waitKey(0);
return 0;
}