当前位置: 首页 > news >正文

建网站需要有啥能力设计网站酷

建网站需要有啥能力,设计网站酷,网站平台建设合同,网站做SEO优化多少钱OpenCV 4.10.0 移植使用 概述移植编译下载解压编译环境编译 编译完成OpenCV 库文件及其作用 使用实例参考代码 参考 概述 OpenCV#xff08;Open Source Computer Vision Library#xff09;是计算机视觉领域最广泛使用的开源库之一#xff0c;提供了丰富的功能模块#xf… OpenCV 4.10.0 移植使用 概述移植编译下载解压编译环境编译 编译完成OpenCV 库文件及其作用 使用实例参考代码 参考 概述 OpenCVOpen Source Computer Vision Library是计算机视觉领域最广泛使用的开源库之一提供了丰富的功能模块包括​​图像处理、视频分析、目标检测、特征提取、机器学习、深度学习推理、3D重建、相机标定​​等。它支持多种编程语言C、Python、Java等并能在Windows、Linux、macOS、Android、iOS等主流操作系统上运行是工业检测、自动驾驶、医学影像、AR/VR、机器人导航等领域的核心工具。      根据项目需求,提前预演引入OpenCV的支持, 本文基于aarch64交叉编译器配置移植OpenCV, 并通过修改一个简单的图片处理demo验证基本功能. 编译主机环境: 属性值系统Ubuntu 18.04内存16GBCPUI7CMakecmake version 3.20.0其他系统环境比较齐全, 已经编译过android系统等平台SDK 移植编译 下载解压 官网当前发布的最新版本是4.11.0, 本文下载的是4.10.0 编译环境 sudo apt update sudo apt install build-essential cmake git pkg-config libgtk-3-dev \libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev \gfortran openexr libatlas-base-dev python3-dev python3-numpy \libtbb2 libtbb-dev libdc1394-22-dev 编译 OpenCV 4.10.0 用的是CMake来构建编译, 为了方便, 编写一个编译脚本, 便于修改维护后续的一些编译指令: ## 创建build, 存放编译输出 if [ ! -d build ]; thenmkdir build elserm -rf build/* ficd build## 创建交叉编译器的cmake 文件, 传递交叉编译器的配置信息给opencv ## 按实际修改对应的配置, 比如交叉编译器的路径, 平台信息等 echo # define toolchain toolchain.cmake echo set(CMAKE_SYSTEM_NAME Linux) toolchain.cmake echo set(CMAKE_SYSTEM_PROCESSOR aarch64) toolchain.cmake echo set(TOOLCHAIN_DIR \/mnt/toolchains/aarch64-mix210-linux\) toolchain.cmake echo set(CMAKE_C_COMPILER \\${TOOLCHAIN_DIR}/bin/aarch64-mix210-linux-gcc\) toolchain.cmake echo set(CMAKE_CXX_COMPILER \\${TOOLCHAIN_DIR}/bin/aarch64-mix210-linux-g\) toolchain.cmake echo set(CMAKE_AR \\${TOOLCHAIN_DIR}/bin/aarch64-mix210-linux-ar\) toolchain.cmake echo set(CMAKE_STRIP \\${TOOLCHAIN_DIR}/bin/aarch64-mix210-linux-strip\) toolchain.cmake echo toolchain.cmake## 引入arm的标准配置, 这个需要根据实际需求修改. echo include(\/mnt/opencv-4.10.0/platforms/linux/arm.toolchain.cmake\) toolchain.cmake echo toolchain.cmake## 按需更改OpenCV配置: echo START Configure... cmake -D CMAKE_BUILD_TYPERELEASE \-DCMAKE_TOOLCHAIN_FILEtoolchain.cmake \-D CMAKE_INSTALL_PREFIX. \-D INSTALL_C_EXAMPLESON \-D INSTALL_PYTHON_EXAMPLESOFF \-D OPENCV_GENERATE_PKGCONFIGON \-D BUILD_EXAMPLESON \..# -D OPENCV_EXTRA_MODULES_PATH../modules\echo START building make -j8echo --END-- 编译完成 在build目录下, 可以看到一下so库: OpenCV 库文件及其作用 libopencv_core.so (.4.10.0, .410) 模块名称Core作用OpenCV 的核心模块包含基本数据结构如 cv::Mat、矩阵运算、数学函数和内存管理功能。主要功能 图像和矩阵操作如矩阵乘法、转置。基本数据类型如点、矩形、向量。内存分配和释放、XML/YAML 文件读写。 依赖性几乎所有其他 OpenCV 模块都依赖此模块是 OpenCV 的基础。 libopencv_imgproc.so (.4.10.0, .410) 模块名称Image Processing作用提供图像处理功能包括滤波、几何变换、边缘检测等。主要功能 图像滤波如高斯模糊、中值滤波。边缘检测如 Canny 算法。图像变换如缩放、旋转、透视变换。颜色空间转换如 BGR 到灰度或 HSV。 使用场景图像预处理、特征提取。 libopencv_imgcodecs.so (.4.10.0, .410) 模块名称Image Codecs作用支持图像的读写操作处理各种图像格式如 JPG、PNG。主要功能 图像加载cv::imread。图像保存cv::imwrite。支持格式如 JPEG、PNG、BMP、WebP 等。 使用场景您的需求直接保存图像到指定路径依赖此模块。 libopencv_highgui.so (.4.10.0, .410) 模块名称High-level GUI作用提供图形用户界面功能用于显示图像和创建交互窗口。主要功能 创建窗口cv::namedWindow。显示图像cv::imshow。捕获键盘/鼠标事件cv::waitKey。 注意依赖外部图形库如 Linux 上的 GTK/Qt 或 Windows 的原生接口。您遇到的 window.cpp:1284 错误与此模块相关若不显示图像可避免使用。 libopencv_calib3d.so (.4.10.0, .410) 模块名称Camera Calibration and 3D Reconstruction作用支持相机标定和三维重建。主要功能 相机内参和外参标定。立体视觉例如视差图计算。三维点云重建、姿态估计。 使用场景机器人导航、增强现实。 libopencv_dnn.so (.4.10.0, .410) 模块名称Deep Neural Network作用支持深度学习模型的加载和推理。主要功能 加载预训练模型如 TensorFlow、PyTorch、ONNX 格式。运行神经网络推理如图像分类、目标检测。支持硬件加速如 CUDA、OpenCL。 使用场景目标检测、图像分割。 libopencv_features2d.so (.4.10.0, .410) 模块名称2D Features Framework作用提供特征点检测和匹配功能。主要功能 特征检测如 SIFT、SURF、ORB。特征描述子和匹配。图像配准。 使用场景图像拼接、目标跟踪。 libopencv_flann.so (.4.10.0, .410) 模块名称FLANN (Fast Library for Approximate Nearest Neighbors)作用提供高效的近邻搜索算法。主要功能 快速最近邻搜索用于特征点匹配。支持 KD 树、K-Means 等算法。 使用场景特征匹配、聚类。 libopencv_gapi.so (.4.10.0, .410) 模块名称Graph API作用提供基于图的图像处理框架用于优化计算流程。主要功能 构建图像处理流水线。支持跨平台优化CPU、GPU。 使用场景高性能图像处理、实时应用。 libopencv_ml.so (.4.10.0, .410) 模块名称Machine Learning作用提供传统机器学习算法。主要功能 支持算法如 SVM、决策树、KNN、随机森林。模型训练和预测。 使用场景图像分类、回归分析。 libopencv_objdetect.so (.4.10.0, .410) 模块名称Object Detection作用支持目标检测功能。主要功能 人脸检测Haar 级联、LBP 级联。特定对象检测如 QR 码、行人。 使用场景监控、安防。 libopencv_photo.so (.4.10.0, .410) 模块名称Photo作用提供计算摄影功能。主要功能 图像修复如去噪、去模糊。HDR 成像、图像去雾。 使用场景图像增强、艺术效果。 libopencv_stitching.so (.4.10.0, .410) 模块名称Image Stitching作用支持图像拼接生成全景图。主要功能 特征点匹配和图像对齐。图像融合生成无缝全景图。 使用场景全景摄影、地图生成。 libopencv_video.so (.4.10.0, .410) 模块名称Video Analysis作用提供视频处理和运动分析功能。主要功能 光流跟踪如 Lucas-Kanade。背景建模和运动检测。 使用场景视频跟踪、动作分析。 libopencv_videoio.so (.4.10.0, .410) 模块名称Video I/O作用支持视频的读写和捕获。主要功能 读取视频文件cv::VideoCapture。写入视频文件cv::VideoWriter。访问摄像头或视频流。 使用场景视频处理、实时流。 libopencv_ts.a 模块名称Test作用OpenCV 的测试模块包含测试框架和26. libopencv_ts.a模块名称Test作用OpenCV 的测试模块包含测试框架和工具函数。主要功能 用于 OpenCV 内部单元测试和性能测试。提供测试相关的基础设施。 注意此模块为静态库.a通常仅用于 OpenCV 开发和测试非用户程序直接使用。 使用实例 注意事项: 依赖性某些模块如 highgui依赖外部库GTK/Qt。若仅保存图像imgcodecs 足以无需 highgui。编译配置使用 OpenCVConfig.cmake如前所述可自动处理模块依赖。例如find_package(OpenCV REQUIRED COMPONENTS core imgproc imgcodecs)环境变量确保库路径在 LD_LIBRARY_PATH 中Linux例如export LD_LIBRARY_PATH/mnt/opencv_lib:$LD_LIBRARY_PATH参考代码 CMakeLists.txt cmake_minimum_required(VERSION 3.10)# 项目名称和语言 project(OpenCV_Demo LANGUAGES CXX C)# 设置 C 标准 set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON)# 设置交叉编译工具链 set(TOOLCHAINS /mnt/toolchains/aarch64-mix210-linux) set(CMAKE_C_COMPILER ${TOOLCHAINS}/bin/aarch64-mix210-linux-gcc) set(CMAKE_CXX_COMPILER ${TOOLCHAINS}/bin/aarch64-mix210-linux-g)## OPEN_CV set(SRC_DIR ${CMAKE_SOURCE_DIR}) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${SRC_DIR}/build/output) set(OpenCV_DIR /mnt/opencv-4.10.0/build) # 查找 OpenCV 包 find_package(OpenCV REQUIRED)# 包含 OpenCV 头文件目录 include_directories(${OpenCV_INCLUDE_DIRS})# 包含目录 include_directories(${SRC_DIR}/include )add_executable(edge_sampleedge_sample.cpp )target_link_libraries(edge_sample ${OpenCV_LIBS})edge_sample.cpp #include opencv2/core/utility.hpp #include opencv2/imgproc.hpp #include opencv2/imgcodecs.hpp #include opencv2/highgui.hpp#include stdio.husing namespace cv; using namespace std;int edgeThresh 5; int edgeThreshScharr1;Mat image, gray, blurImage, edge1, edge2, cedge;// define a trackbar callback static void onTrackbar(int, void*) {blur(gray, blurImage, Size(3,3));imwrite(/mnt/imgs/1_blur.jpg, blurImage);// Run the edge detector on grayscaleCanny(blurImage, edge1, edgeThresh, edgeThresh*3, 3);cedge Scalar::all(0);image.copyTo(cedge, edge1);//imshow(window_name1, cedge);imwrite(/mnt/imgs/2_candy.jpg, edge1);/// Canny detector with scharrMat dx,dy;Scharr(blurImage,dx,CV_16S,1,0);Scharr(blurImage,dy,CV_16S,0,1);Canny( dx,dy, edge2, edgeThreshScharr, edgeThreshScharr*3 );/// Using Cannys output as a mask, we display our resultcedge Scalar::all(0);image.copyTo(cedge, edge2);//imshow(window_name2, cedge);imwrite(/mnt/imgs/3_candy.png, edge2); }static void help(const char** argv) {printf(\nThis sample demonstrates Canny edge detection\nCall:\n %s [image_name -- Default is fruits.jpg]\n\n, argv[0]); }const char* keys {{help h||}{image |fruits.jpg|input image name} };int main( int argc, const char** argv ) {//help(argv);CommandLineParser parser(argc, argv, keys);string filename parser.getstring(0);printf(filename:%s\n, filename.c_str());image imread(samples::findFile(filename), IMREAD_COLOR);if(image.empty()){printf(Cannot read image file: %s\n, filename.c_str());help(argv);return -1;}cedge.create(image.size(), image.type());cvtColor(image, gray, COLOR_BGR2GRAY);imwrite(/mnt/imgs/0_gray.jpg, gray);// Create a window//namedWindow(window_name1, 1);//namedWindow(window_name2, 1);// create a toolbar//createTrackbar(Canny threshold default, window_name1, edgeThresh, 100, onTrackbar);//createTrackbar(Canny threshold Scharr, window_name2, edgeThreshScharr, 400, onTrackbar);// Show the imageonTrackbar(0, 0);// Wait for a key stroke; the same function arranges events processing//waitKey(0);return 0; } 把编译好的程序放到目标设备中去运行看看结果: opencv_lib: 编译好的opencv 的so库 edge_sample: 测试程序 imgs: 测试图片目录 # 文件目录 /mnt # ls -l -rwxrwxr-x 1 1000 1000 28.4K Jun 29 2025 edge_sample drwxrwxr-x 2 1000 1000 4.0K Jun 29 2025 imgs drwxrwxr-x 2 1000 1000 4.0K Jun 29 2025 opencv_lib# 运行测试 /mnt # export LD_LIBRARY_PATH/mnt/opencv_lib:$LD_LIBRARY_PATH /mnt # ./edge_sample imgs/sample.png filename:imgs/sample.png# 结果 /mnt # ls -l imgs/ total 676 -rw-r--r-- 1 root root 61950 Jun 29 2025 0_gray.jpg -rw-r--r-- 1 root root 43720 Jun 29 2025 1_blur.jpg -rw-r--r-- 1 root root 113186 Jun 29 2025 2_candy.jpg -rw-r--r-- 1 root root 35619 Jun 29 2025 3_candy.png -rw-rw-r-- 1 1000 1000 278303 Dec 22 2024 sample.png原图 灰度图: 模糊处理: Canny算子边缘检测 参考 OpenCV的arm交叉编译版本安装步骤samples/cpp/edge.cppOpenCVOpenCV 移植与交叉编译详细过程以及问题解决记录
http://www.zqtcl.cn/news/113836/

相关文章:

  • 金泉网做网站找谁网站的结构布局
  • 网站开发摊销年限柳州网站建设哪家
  • 佛山市和城乡建设局网站首页武建安装公司新闻
  • 如何宣传商务网站网页制作与设计自考
  • 在国内的服务器上建设国外网站响应式单页网站模板
  • 平湖市住房建设局网站国外代理ip
  • 铁路建设监理网站地推项目发布平台
  • 我的世界做指令的网站网站如何在推广
  • 过年做那个网站致富盘锦网站建设vhkeji
  • 网站semseo先做哪个关键词投放
  • 药品招商网站大全南阳做网站公司电话
  • 优秀手机网站大学生创新产品设计作品
  • 备案期间关闭网站宝应人才网
  • 响应式网站一般做几个版本官网+wordpress
  • 太原网站建设方案服务佛山市建设工程有限公司
  • 智能网站建设平台php mysql 网站源码
  • 夏天做那些网站能致富百度关键词价格怎么查询
  • 厦门微信网站专业从事网站开发公司
  • 网站标题的写法湖南如何做网络营销
  • 设计做兼职的网站求推荐医院英文网站建设
  • 有没得办法可以查询一个网站有没得做竞价呀ai可以用来做网站吗
  • 俄乌局势最新消息惠州seo排名优化
  • 常州发布信息的有什么网站电商平台建设公司
  • 高新区手机网站建设长沙关键词优化服务
  • 网站开发预算报价表推销网站的方法
  • 做网站需要几个人昆明旅行社网站开发
  • 上海产品网站建设网站建设分为哪些
  • 史志网站建设在线网站建设工程标准
  • 青海省建设工程在哪个网站发布北京专业网站外包公司
  • 东营网站建设公司wordpress获取子分类