在过去的半周里面翻遍资料想要建立opencv的C++环境,先是使用Visual Studio for Mac2022,查不到资料,无果。然后用VS code,但是那个c++语言环境总是配不上还是怎么;发现了一篇clion的文章,大多使用的是命令行。照着文章也有点不太行。
这里是比较全的方案:
1、确保你的电脑上已经下载好了opencv,这里我用的是某个大佬开发的命令行控制,进入终端 复制粘贴几乎全自动下载,但是有点忘记是哪了。然后还要下载与之相关的cmake和其他的。如果不知道什么缺失了,就从终端里面输入brew info opencv,看哪个后面是一把红叉叉就输入brew install ***(前提是要有Homebrew)(就是Build那三个要下载,官网也有说)
2、打开Clion
(1)创建一个新的c++文件
(2)打开设置,就是右上方的这个齿轮,如图,如果Debugger处无法修改成Clang或者Gcc就保持默认这个。
(3)如图,在CMake--Cmake options处添加
-DOpenCV_DIR=/usr/local/opt/opencv/lib/cmake/opencv4
后面的路径根据个人的不同而不同;
路径的查询还是可以利用刚刚的brew info opencv得到,下图就是
(4)在CMakeLists.txt中添加以下,记住是添加,不要动原有的
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
target_link_libraries(your_target_name ${OpenCV_LIBS})
将 your_target_name
替换为左上角你项目的名称
(5)在main.cpp中添加
#include <opencv2/opencv.hpp>
看是否会报错
至此配置完毕
3、自己碰到的一些问题
(1)添加了简单的图像显示程序却报错,大体是CMake有错误什么的
简单的图像显示程序:
#include <iostream>
#include <opencv2/opencv.hpp>
int main(int argc, char** argv)
{
// 加载图像
cv::Mat image = cv::imread("path/to/your/image.jpg");
if (image.empty())
{
std::cout << "Failed to load the image" << std::endl;
return -1;
}
// 缩放图像
cv::Mat resizedImage;
cv::resize(image, resizedImage, cv::Size(300, 200));
// 翻转图像
cv::Mat flippedImage;
cv::flip(image, flippedImage, 0); // 0 表示垂直翻转, 1 表示水平翻转, -1 表示水平垂直翻转
// 旋转图像
cv::Mat rotatedImage;
cv::Point2f center(image.cols / 2.0, image.rows / 2.0);
double angle = 45.0; // 旋转角度
double scale = 1.0;
cv::Mat rotationMatrix = cv::getRotationMatrix2D(center, angle, scale);
cv::warpAffine(image, rotatedImage, rotationMatrix, image.size());
// 显示图像
cv::imshow("Original Image", image);
cv::imshow("Resized Image", resizedImage);
cv::imshow("Flipped Image", flippedImage);
cv::imshow("Rotated Image", rotatedImage);
cv::waitKey(0);
return 0;
}
报错内容:
====================[ Build | untitled2 | Debug ]===============================
/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/bin/cmake --build /Users/kzxu/CLionProjects/untitled2/cmake-build-debug --target untitled2 -j 6
Error: could not load cache
原因是CMake缓存文件损坏: CMake缓存文件可能被意外损坏或删除了。
-
CMake配置不正确: 项目的CMake配置可能存在问题,导致缓存无法正确生成。
-
项目结构发生变化: 如果您对项目结构进行了修改,比如添加或删除了文件,CMake缓存可能就失效了。
-
解决方案:重新生成CMake缓存,在项目之中的ternimal中(左下自下而上第三个)输入
-
mkdir cmake-build-debug cd cmake-build-debug cmake -DCMAKE_BUILD_TYPE=Debug ..
(2)以上都解决之后总是出现路径不正确的问题
我这里是不能含有中文、把图片移到终端显示的是绝对路径,要弄成相对路径,就是把//变成\,然后注意一下" ",只能是"###/###/###/###"不能是" ###/###/###"这种,就是空格的问题。