《QT 5.14.1 搭建 opencv 环境全攻略》

《QT 5.14.1 搭建 opencv 环境全攻略》

  • 一、引言
  • 二、准备工作
    • (一)软件下载
    • (二)系统环境确认
  • 三、安装 QT 5.14.1
    • (一)安装包下载与运行
    • (二)环境变量配置
  • 四、OpenCV 安装与配置
    • (一)下载与解压
    • (二)使用 CMake 生成项目文件
    • (三)编译与安装
  • 五、在 QT 项目中配置 OpenCV
    • (一)创建 QT 项目
    • (二)项目文件.pro 配置
  • 六、测试环境搭建是否成功
  • 七、常见问题与解决方法
  • 八、总结与展望

一、引言

在当今数字化飞速发展的时代,计算机视觉技术的应用日益广泛,已然成为众多领域中不可或缺的一部分。而 OpenCV 作为一个开源的计算机视觉和机器学习软件库,更是发挥着举足轻重的作用。它涵盖了图像处理、特征提取、目标检测、运动分析、人脸识别等极为广泛的功能,从最基本的读写图片、降噪滤波、边缘检测,到复杂的行人检测、人脸识别、文本识别等,都能轻松应对。例如在视频监控领域,OpenCV 可通过识别和分析视频中的运动信息,实现实时预警、跟踪目标,提高监控系统的智能化水平;在人机交互方面,其人脸识别功能助力实现人脸解锁、智能语音助手等便捷方式;自动驾驶领域中,也依靠它的目标检测和运动分析功能保障行驶的安全与高效;甚至在医学影像分析上,能帮助医生更准确高效地诊断病情。
与此同时,QT 作为跨平台的 C++ 图形用户界面库,有着丰富的控件库以及高效的信号槽机制等诸多优势,能够帮助开发者打造出美观且易用的界面,让用户交互变得更加便捷高效。
当我们把 OpenCV 和 QT 5.14.1 结合起来时,更是能碰撞出奇妙的火花。OpenCV 负责强大的底层算法运算,QT 5.14.1 则完成上层的应用接口搭建,二者相辅相成,不仅可以简化开发流程,还能提升开发效率,拓展应用的功能与适用范围。然而,要想充分发挥它们结合的优势,首先就需要搭建好对应的开发环境。接下来,我们就详细地介绍一下 QT 5.14.1 搭建 OpenCV 环境的具体步骤,帮助大家顺利迈出开发的第一步,开启计算机视觉应用开发的精彩之旅。

二、准备工作

(一)软件下载

  • QT 5.14.1:可以从 QT
    官方网站(https://download.qt.io/archive/qt/5.14.1/)下载对应版本的安装包,根据操作系统选择合适的版本,如 Windows 系统下的 qt-opensource-windows-x86-5.14.1.exe。
  • OpenCV:推荐使用 OpenCV 4.0 及以上版本,以获取更好的性能和更多的功能支持。从 OpenCV 官方网站(https://opencv.org/releases/)下载相应版本的源代码或预编译库,例如
    opencv-4.5.0-vc14_vc15.exe(适用于 Windows 且与 Visual Studio 编译器兼容)。
  • CMake:这是一个跨平台的安装工具,用于构建 OpenCV 库。可从 CMake 官方网站(https://cmake.org/download/)下载,如 cmake-3.20.0-win64-x64.msi(Windows 64 位版本)。

(二)系统环境确认

  • 操作系统:确保使用的是 Windows 7 及以上版本,建议使用 Windows 10,以保证系统的稳定性和兼容性。
  • 硬件配置:处理器建议选用 Intel Core i5 及以上,内存至少 4GB(推荐 8GB 或更高),硬盘空间需预留足够空间用于安装 QT、OpenCV 及相关工具,建议至少 10GB 以上可用空间,显卡最好支持 OpenGL 3.0 及以上版本,以确保良好的图形处理性能。

三、安装 QT 5.14.1

(一)安装包下载与运行

  • 首先,从 QT 官方网站(https://download.qt.io/archive/qt/5.14.1/)下载 QT 5.14.1
    的安装包,根据您的操作系统选择合适的版本,如 Windows 系统下的 “qt-opensource-windows-x86-5.14.1.exe”。
  • 下载完成后,双击运行安装包,进入安装向导。在安装过程中,您需要按照提示逐步操作:
    • 登录:如果您已有 QT 账号,可以登录;若没有账号,也可以选择跳过此步骤(在安装时断网可自动跳过登录步骤)。
    • 选择同意许可协议,点击 “Next”。
    • 选择安装目录:建议选择一个磁盘空间充足的位置,安装过程大约需要 3.2G 的空间。例如,您可以选择 “D:\Qt\5.14.1” 作为安装目录(具体路径可根据您的实际情况调整)。
    • 选择组件:这一步非常重要,建议至少勾选 “Qt Creator”(这是 QT 的集成开发环境,方便后续开发)、“MSVC 2017 64-bit”(如果您的系统是 64 位且使用 Visual Studio 编译器)以及 “Qt Charts”“Qt Multimedia” 等常用组件,以满足不同的开发需求。当然,如果您不确定具体需要哪些组件,可以先选择默认的全部安装,后续也可以通过维护工具进行组件的添加或删除。
    • 点击 “Install” 开始安装,等待安装过程完成。

(二)环境变量配置

  • 安装完成后,需要将 QT 的相关路径添加到系统环境变量中,以便系统能够识别 QT 的命令和工具。以下是具体步骤:
    • 在 Windows 系统中,右键点击 “此电脑”,选择 “属性”。
    • 在弹出的窗口中,点击 “高级系统设置”。
    • 在 “系统属性” 窗口的 “高级” 选项卡下,点击 “环境变量” 按钮。
    • 在 “系统变量” 列表中,找到 “Path” 变量,点击 “编辑”。
    • 在 “编辑环境变量” 窗口中,点击 “新建”,将 QT 的安装目录下的 “bin” 文件夹路径添加进去,例如 “D:\Qt\5.14.1\mingw73_64\bin”(如果您使用的是 MinGW 编译器)或
      “D:\Qt\5.14.1\msvc2017_64\bin”(如果您使用的是 MSVC 编译器)。注意,这里的路径要根据您实际的安装情况进行填写。
    • 依次点击 “确定” 关闭各个窗口,完成环境变量的配置。

配置完成后,您可以在命令提示符(CMD)中输入 “qmake -v” 命令来验证 QT 是否安装成功。如果成功安装,将显示 QT 的版本信息等相关内容,这表明您的系统已经能够正确识别 QT 的命令,为后续的开发工作做好了准备。

四、OpenCV 安装与配置

(一)下载与解压

  • 前往 OpenCV 官方网站(https://opencv.org/releases/),依据系统及开发需求挑选合适版本的 OpenCV 进行下载,如 Windows 系统可选择 “opencv-4.5.0-vc14_vc15.exe”(此版本适用于与 Visual Studio 编译器配合使用)。
  • 下载完成后,运行安装程序,在安装过程中,可将 OpenCV 解压至指定目录,例如 “D:\OpenCV\4.5.0”,以便后续操作中能便捷地找到相关文件。

(二)使用 CMake 生成项目文件

  • 打开 CMake 软件,在 “Where is the source code” 一栏中选定 OpenCV 的源文件目录,即之前解压的 OpenCV 文件夹下的 “sources” 目录,例如 “D:\OpenCV\4.5.0\sources”。
  • 在 “Where to build the binaries” 处指定一个用于存放编译后文件及中间文件的目录,建议新建一个文件夹,如 “D:\OpenCV\4.5.0\build”。
  • 点击 “Configure” 按钮,此时会弹出一个对话框,根据您的编译器类型进行选择,如使用 Visual Studio 2019,可选择 “Visual Studio 16 2019”,并依据系统架构选择 “x64” 或 “x86”,然后点击 “Finish”。CMake 开始进行配置过程,这可能需要一些时间,期间可能会出现一些红色的错误提示,这是因为某些依赖项未找到或配置不正确。
  • 配置完成后,在 CMake 的界面中,找到 “BUILD_opencv_world” 选项并勾选,它会将 OpenCV 的各个模块编译成一个单独的库文件,方便后续使用。再次点击 “Configure”,等待配置完成,直到界面中不再出现红色错误提示。
  • 最后,点击 “Generate” 按钮,生成用于编译 OpenCV 的项目文件,成功后即可关闭 CMake。

(三)编译与安装

  • 使用 Visual Studio 或其他您选择的编译器打开之前由 CMake 生成的项目文件,通常位于
    “D:\OpenCV\4.5.0\build” 目录下,找到对应的解决方案文件(.sln)并双击打开。
  • 在编译器中,将编译模式调整为 “Release”(如果您需要发布版本的库文件;如果是用于调试,则选择 “Debug” 模式),然后选择 “生成” 菜单中的 “生成解决方案” 选项,开始编译 OpenCV 库文件。编译过程可能会持续较长时间,具体时长取决于您的计算机性能。
  • 编译成功后,找到 “INSTALL” 项目(通常在解决方案资源管理器中),右键点击并选择 “生成”,这将把编译好的 OpenCV 库文件、头文件以及其他相关文件安装到指定的目录下,默认安装目录为 “D:\OpenCV\4.5.0\install”(如果在 CMake 配置过程中未修改安装路径)。

至此,OpenCV 已成功安装并配置完成,接下来就可以在 QT 5.14.1 项目中使用 OpenCV 库进行开发了。

五、在 QT 项目中配置 OpenCV

(一)创建 QT 项目

  • 打开 QT Creator,点击 “File” 菜单,选择 “New File or Project” 选项,弹出新建项目向导。
  • 在向导中,选择 “Qt Widgets Application”(这是一个常用的基于部件的窗体 界面程序模板),点击 “Choose” 按钮。
  • 接着,为项目命名(例如 “OpenCV_QT_Project”)并选择项目保存的位置(建议选择一个无中文、无空格且容易找到的路径),然后点击 “Next”。
  • 在 “Kit Selection” 页面,确保选择了之前安装的 QT 5.14.1 版本对应的编译器(如 “Desktop Qt 5.14.1 MinGW 64-bit”),点击 “Next”。
  • 在 “Class Information” 页面,保持默认的基类(如 “QMainWindow”),点击 “Next”,然后点击 “Finish” 完成项目创建。此时,QT Creator 会生成一个基础的项目结构,包括.pro 文件、源文件(.cpp)、头文件(.h)和界面文件(.ui)等。

(二)项目文件.pro 配置

  • 在 QT Creator 的项目视图中,找到并双击打开项目的.pro 文件,在文件末尾添加以下几行代码:
# 添加OpenCV的头文件路径
INCLUDEPATH += D:/OpenCV/4.5.0/install/include
INCLUDEPATH += D:/OpenCV/4.5.0/install/include/opencv2# 添加OpenCV的库文件路径(根据实际安装路径和编译模式进行调整)
win32:CONFIG(release, debug|release):{LIBS += -LD:/OpenCV/4.5.0/install/x64/mingw/lib/LIBS += -lopencv_world450
}
else:win32:CONFIG(debug, debug|release):{LIBS += -LD:/OpenCV/4.5.0/install/x64/mingw/lib/LIBS += -lopencv_world450d
}
  • 上述代码中,INCLUDEPATH 用于指定 QT 项目寻找 OpenCV 头文件的路径,确保项目能够找到 opencv.hpp 等头文件,从而正确识别和使用 OpenCV 的函数和数据结构。LIBS 则用于指定 OpenCV 库文件的路径和需要链接的库文件名,-L 表示库文件的路径,-l 表示要链接的库文件,这里的 opencv_world450(或 opencv_world450d,d 表示 debug 版本)是在 OpenCV 编译过程中生成的库文件名,它包含了 OpenCV 的各个模块,方便在项目中进行链接和使用。注意,路径中的 D:/OpenCV/4.5.0/install 应根据您实际的 penCV 安装路径进行修改,如果您使用的是其他版本的 OpenCV 或者安装路径不同,都需要相应地调整这些路径。

完成上述配置后,QT 项目就能够成功找到并使用 OpenCV 库了,接下来就可以在项目中编写代码,调用 OpenCV 的强大功能来实现各种计算机视觉任务,如图像处理、目标检测、特征提取等。例如,可以在 main.cpp 文件中添加以下代码来测试 OpenCV 是否配置成功:

#include <QApplication>
#include <opencv2/opencv.hpp>int main(int argc, char *argv[])
{QApplication a(argc, argv);// 读取一张图片(请确保路径正确)cv::Mat img = cv::imread("D:/test_image.jpg");if (img.empty()){return -1;}// 显示图片(这里使用 OpenCV 的 imshow 函数,实际应用中可将图片转换为 QT 可显示的格式进行显示)cv::imshow("Image", img);cv::waitKey(0);return a.exec();
}

这段代码使用 OpenCV 的 imread 函数读取一张图片,如果图片读取成功,则使用 imshow 函数显示该图片,并通过 waitKey 函数等待用户按键关闭窗口。如果程序能够成功运行并显示出图片,说明 QT 项目中 OpenCV 的配置已经成功,您可以继续在项目中深入开发各种计算机视觉应用。

六、测试环境搭建是否成功

以下提供一段简单的代码示例,用于测试 OpenCV 环境是否在 QT 项目中成功搭建:

#include <QApplication>
#include <opencv2/opencv.hpp>int main(int argc, char *argv[])
{QApplication a(argc, argv);// 读取一张图片(请确保路径正确)cv::Mat img = cv::imread("D:/test_image.jpg");if (img.empty()){return -1;}// 显示图片(这里使用OpenCV的imshow函数,实际应用中可将图片转换为QT可显示的格式进行显示)cv::imshow("Image", img);cv::waitKey(0);return a.exec();
}

在上述代码中,首先使用cv::imread函数尝试读取一张指定路径下的图片。如果图片读取成功,即img不为空,接着使用cv::imshow函数将图片显示出来,并通过cv::waitKey(0)等待用户按键操作,防止窗口一闪而过。若程序能够顺利运行并弹出显示图片的窗口,就表明 OpenCV 环境在 QT 项目中已经成功搭建,开发者可以在此基础上进一步利用 OpenCV 的丰富功能进行更复杂的计算机视觉任务开发,比如图像的滤波、特征提取、目标检测等;若程序运行出错,无法显示图片,则需要仔细检查之前的 OpenCV 安装和 QT 项目配置步骤,查看是否存在路径设置错误、库文件链接失败等问题。

七、常见问题与解决方法

在 QT 5.14.1 搭建 OpenCV 环境的过程中,可能会遇到各种各样的问题,以下是一些常见问题及其解决方法:

  • 编译错误
    • “undefined reference to…”:这类错误通常是由于库文件链接不正确导致的。首先检查项目的.pro 文件中,OpenCV 库文件的路径和名称是否正确设置。确保LIBS变量中的路径与实际的 OpenCV 库文件路径一致,并且库文件名没有拼写错误。例如,如果在LIBS中写的是-opencv_world450,但实际安装的是opencv_world451,就会出现这种错误。此时,需要将LIBS中的库文件名修改为正确的版本号。
    • “fatal error: opencv2/opencv.hpp: No such file or directory”:这表明编译器无法找到OpenCV 的头文件。需要检查INCLUDEPATH变量中是否正确设置了 OpenCV 头文件的路径。如果路径中存在中文、空格或者拼写错误,都可能导致编译器无法找到头文件。确保路径指向 OpenCV 安装目录下的include文件夹,并且该文件夹中包含opencv2文件夹和opencv.hpp等头文件。
  • 链接错误
    • error: file not recognized: File format not recognized”:此错误一般是因为penCV 编译文件版本和 QT 项目版本不匹配造成的。比如,如果 OpenCV 是用 64 位编译器编译的,而 QT 项目选择了 32 位编译器,就会出现这种情况。此时,需要确保 OpenCV 和 QT 项目的编译器版本一致,即如果 OpenCV 是 64 位的,QT 项目也应选择 64 位的编译器(如 “Desktop Qt 5.14.1 MinGW 64-bit”)。
  • 环境变量问题
    • 程序运行时提示找不到 dll 文件”:这可能是因为没有将 OpenCV 的bin目录添加到系统环境变量中,或者添加后没有重新启动计算机使环境变量生效。解决方法是将 OpenCV 安装目录下的bin文件夹路径(例如 “D:\OpenCV\4.5.0\install\x64\mingw\bin”)添加到系统环境变量的 “Path” 变量中,然后重新启动计算机。
    • 在 CMake 配置过程中出现关于 Python 路径的错误”:如果在 CMake 配置 OpenCV 时,出现与 Python 相关的错误,可能是因为 Python 的安装路径中含有中文。建议卸载ython,重新安装到一个无中文的路径下,并确保在安装过程中勾选了 “Add Python to PATH” 选项,将 Python 添加到系统环境变量中。

如果在搭建过程中遇到其他问题,可以仔细查看编译器的错误提示信息,通常这些信息会给出一些线索,帮助定位问题所在。同时,也可以在相关的技术论坛(如 Stack Overflow、CSDN 等)上搜索类似问题的解决方案,或者向同行请教,以解决遇到的困难,顺利完成 QT 5.14.1 与 OpenCV 环境的搭建,开启计算机视觉项目的开发之旅。

八、总结与展望

通过以上详细的步骤,我们成功搭建了 QT 5.14.1 与 OpenCV 的开发环境。这一过程虽然可能会遇到一些问题,但只要按照步骤仔细操作,并参考常见问题的解决方法,就能够顺利完成搭建,为后续的计算机视觉应用开发奠定坚实的基础。
随着技术的不断发展,计算机视觉在智能安防、自动驾驶、医疗影像分析、工业检测等众多领域的应用将越来越广泛和深入。掌握 QT 与 OpenCV 的开发技能,将为开发者打开一扇通向这些前沿领域的大门,创造出更多具有创新性和实用性的应用程序。希望读者能够在这个基础上,不断探索和实践,充分发挥自己的创造力,为推动计算机视觉技术的发展贡献自己的力量,在这个充满机遇和挑战的领域中取得丰硕的成果,开创属于自己的精彩篇章。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/65097.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3 中使用axios

1.安装axios、js-cookie、pinia axios命令行&#xff1a; npm install axios js-cookie命令行&#xff1a; npm install js-cookie store命令行&#xff1a; npm install pinia 2.配置文件 (1)缓存文件配置 src/plugins/auth.js const sessionCache {set (key, valu…

从AI换脸到篡改图像,合合信息如何提升视觉内容安全?

本文目录 引言一、AI“真假之战”下的发展现状与考验挑战1.1 视觉内容安全现状与技术分类1.2视觉内容安全企业1.3视觉内容安全领域挑战 二、开山之石&#xff1a;引领视觉内容安全的创新之路2.1合合内容安全系统2.2发起编制相关技术规范2.3参与篡改检测挑战赛 三、视觉内容安全…

解决Ubuntu下无法装载 Windows D盘的问题

电脑安装了 Windows 和 Ubuntu 24.04 后&#xff0c;在Ubuntu系统上装载 D盘&#xff0c;发现无法装载错误如下&#xff1a; Error mounting /dev/nvme0n1p4 at /media/jackeysong/Data: wrong fs type, bad option, bad superblock on /dev/nvme0n1p4, missing codepage or h…

STM32-笔记10-手写延时函数(SysTick)

1、什么是SysTick Systick&#xff0c;即滴答定时器&#xff0c;是内核中的一个特殊定时器&#xff0c;用于提供系统级的定时服务。该定时器是一个24位的倒计数定时器‌。它从设定的初值&#xff08;即重载值&#xff09;开始计数&#xff0c;每经过一个系统时钟周期&#xff0…

“AI+Security”系列第4期(一)之“洞” 见未来:AI 驱动的漏洞挖掘新范式

在数字化浪潮下&#xff0c;安全漏洞问题日益严峻&#xff0c;成为各行业发展的重大挑战。近日&#xff0c;“AISecurity” 系列第 4 期线下活动于北京成功举办&#xff0c;聚焦 “洞” 见未来&#xff1a;AI 驱动的漏洞挖掘新范式&#xff0c;汇聚了安全领域的众多专家。 本次…

攻防世界 PHP2

开启场景 访问 /index.php&#xff0c;页面无变化 访问 /index.phps index.php 和 index.phps 文件之间的主要区别在于它们的文件扩展名。 index.php&#xff1a;这是一个标准的 PHP 文件&#xff0c;通常用于编写 PHP 代码。当用户访问 index.php 文件时&#xff0c;Web 服务器…

AI应用-本地模型实现AI生成PPT(简易版)

文章目录 前言技术栈效果展示 一、实现思路二、实现步骤1.本地安装marp-cli2.后端实现3.前端实现 三、代码地址及说明 前言 在许多项目中&#xff0c;生成 PPT 是常见的需求&#xff0c;尤其在教育和报告展示中。传统的生成 PPT 的方法需要手动创建&#xff0c;而使用生成模型…

项目2路由交换

背景 某学校为满足日常教学生活需求&#xff0c;推动数字校园的建设&#xff0c;学校有办公楼和学生宿舍楼和服务器集群三块区域&#xff0c;请合理规划IP地址和VLAN&#xff0c;实现企业内部能够互联互通现要求外网能通过公网地址访问服务器集群&#xff0c;学生和老师能正常…

快速掌握Haproxy原理架构

文章目录 一、原理架构二、无负载均衡三、四层负载均衡的工作流程四、七层负载均衡工作流程五、基础属性mode 属性retries 属性maxconn 属性clitimeout 属性servtimeout 属性states uri 属性 一、原理架构 四层tcp代理&#xff1a;Haproxy仅在客户端和服务器之间双向转发流量&…

02、并发编程的三大特性

并发编程有三大特性分别是&#xff0c;原子性&#xff0c;可见性&#xff0c;有序性。会产生这些特性的根本原因是现在的服务器都是多CPU多核心数的&#xff0c;每个CPU都有自己单独的一套缓存和pc系统&#xff0c;而且程序在运行时按照JMM的规范&#xff0c;它们是需要先把数据…

【项目构建】Gradle入门

本文适用&#xff1a; 不知道什么是项目构建&#xff0c;可以了解下Ant&#xff0c;Maven&#xff0c;Gradle的区别。知道什么是项目构建&#xff0c;了解Ant&#xff0c;Maven&#xff0c;可以看到Gradle是怎么做的。知道什么是项目构建&#xff0c;了解Ant&#xff0c;Maven&…

java栈--数据结构

前言 java实现数据结构栈&#xff1a;用顺序表存储的栈和数组存储的栈。 本文源代码网址&#xff1a;https://gitee.com/zfranklin/java/tree/master/dataStructure/src/com/njupt/stack https://gitee.com/zfranklin/java/tree/master/dataStructure/src/com/njupt/stack 栈…

2.5.2 文件结构、目录及存取

文章目录 文件结构文件目录存取 文件结构 文件结构是文件的组织形式。从用户角度观察到的结构是逻辑结构&#xff0c;从机器实现存储的角度观察&#xff0c;看到的是物理结构。 逻辑结构 有结构的记录式文件&#xff1a;文件中记录的长度都相同&#xff0c;称为定长记录。文件…

关于科研中使用linux服务器的集锦

文章目录 常用的linux命令下载COCO2017数据集 常用的linux命令 一个文件移动到另一个目录下的命令是&#xff1a;mv -v ./old_name ./new_name 如果目标文件夹中已经有同名文件或文件夹&#xff0c;mv 会覆盖它们&#xff08;除非使用了 -i 选项来提示确认&#xff09;。 使用…

<项目代码>YOLO Visdrone航拍目标识别<目标检测>

项目代码下载链接 &#xff1c;项目代码&#xff1e;YOLO Visdrone航拍目标识别&#xff1c;目标检测&#xff1e;https://download.csdn.net/download/qq_53332949/90163918YOLOv8是一种单阶段&#xff08;one-stage&#xff09;检测算法&#xff0c;它将目标检测问题转化为一…

java内存马

java内存马 idea 2024.1.2专业版 jdk1.8.0_181 tomcat 8.5.82 默认有java基础&#xff0c;Javassist&#xff0c;Jsp&#xff0c;JavaEE都会一点 更新ing 文章目录 java内存马0. 一些基础1. filter型内存马2. Servlet型内存马3. listener型内存马4. Tomcat特有的Valve内存马…

【ORB-SLAM3:相机针孔模型和相机K8模型】

在ORB-SLAM3中&#xff0c;相机的建模是 SLAM 系统的核心之一&#xff0c;因为它直接影响到如何处理和利用图像数据进行定位和地图构建。ORB-SLAM3 支持不同的相机模型&#xff0c;其中包括针孔模型和鱼眼模型&#xff08;K8 模型&#xff09;。下面分别介绍这两种模型。 相机…

[手机Linux] 七,NextCloud优化设置

安装完成后在个人设置里发现很多警告&#xff0c;一一消除。 只能一条一条解决了。 关于您的设置有一些错误。 1&#xff0c;PHP 内存限制低于建议值 512 MB。 设置php配置文件&#xff1a; /usr/local/php/etc/php.ini 把里面的&#xff1a; memory_limit 128M 根据你自…

P3456 [POI2007] GRZ-Ridges and Valleys BFS-连通块思想

题目描述 Byteasar loves trekking in the hills. During the hikes he explores all the ridges and valleys in vicinity. Therefore, in order to plan the journey and know how long it will last, he must know the number of ridgesand valleys in the area he is goi…

一键打断线(根据相交点打断)——CAD c# 二次开发

多条相交线根据交点一键打断&#xff0c;如下图&#xff1a; 部分代码如下: finally namespace IFoxDemo; public class Class1 {[CommandMethod("ddx")]public static void Demo(){//"ifox可以了".Print();Database db HostApplicationServices.Workin…