OpenCV面试题
opencv面试复习1 OpenCV 中cv::Mat的深拷贝和浅拷贝问题cv::Mat默认赋值和拷贝构造是浅拷贝只复制矩阵头信息底层像素数据共享OpenCV 通过引用计数管理内存。这样可以减少大图像复制带来的性能开销。如果需要真正复制图像数据需要使用clone()或copyTo()实现深拷贝。2 OpenCV 中 RGB2GRAY 是怎么实现的RGB 转灰度本质是把三通道彩色图像转换为单通道亮度图像。不是简单求平均而是按照人眼对不同颜色的敏感程度进行加权求和。常用公式是Gray 0.299R 0.587G 0.114B。在 OpenCV 中由于默认通道顺序是 BGR所以通常使用cv::cvtColor(src, gray, cv::COLOR_BGR2GRAY)完成转换。3 连续图像转化为数字图像需要进行哪些操作连续图像转换为数字图像主要包括采样和量化两个过程。采样是把连续空间坐标离散成有限个像素点决定图像的空间分辨率量化是把连续的灰度值或颜色值离散成有限等级比如 8 位图像中像素值范围是 0 到 255。之后再按照一定图像格式进行编码和存储比如 JPG、PNG 或 BMP。4 数字图像中有哪些基本特征数字图像的基本特征包括颜色特征、灰度特征、边缘特征、纹理特征、形状特征和局部特征。颜色特征描述图像的颜色分布灰度特征描述亮度变化边缘特征反映物体边界纹理特征反映局部重复结构形状特征描述目标几何轮廓局部特征如 SIFT、ORB 可用于图像匹配和目标识别。5 图像边缘检测中常用的边缘检测算子有哪些边缘检测本质上是在找灰度变化剧烈的位置而噪声点也会造成灰度突变。如果不先滤波噪声也可能被误检测为边缘。使用高斯滤波可以平滑图像减少噪声干扰让边缘检测结果更稳定。尤其是 Laplacian 和Canny一般都会先进行高斯滤波。常用边缘检测算子主要有 Roberts、Prewitt、Sobel、Scharr、Laplacian、LoG 和 Canny。Roberts 和 Prewitt 属于比较基础的一阶梯度算子计算简单但抗噪能力一般。Sobel 是比较常用的一阶梯度算子通过 x 和 y 方向模板计算灰度梯度能检测水平和垂直边缘并且具有一定平滑效果。Scharr 可以看作 Sobel 的改进在 3×3 卷积核下梯度精度更高。Laplacian 是二阶导数算子可以检测各个方向的边缘但对噪声敏感所以通常会先进行高斯滤波。LoG 就是先高斯滤波再做 Laplacian用来提高抗噪能力。6 canny边缘检测的流程Canny 边缘检测一般包括五个步骤。首先将图像转为灰度图然后通过高斯滤波去除噪声。接着计算图像的梯度幅值和梯度方向用来判断灰度变化剧烈的位置。然后进行非极大值抑制只保留梯度方向上的局部最大值使边缘变细。最后使用双阈值检测区分强边缘、弱边缘和非边缘并通过边缘连接保留与强边缘相连的弱边缘得到最终边缘图。所以 Canny 得到的边缘通常更细、更连续抗噪能力也更好但计算过程比 Sobel 更复杂参数选择也更重要。灰度图 → 高斯滤波 → 计算梯度 → 非极大值抑制 → 双阈值检测与边缘连接#includeopencv2/opencv.hpp#includeiostreamintmain(){// 1. 读取原始图像// imread 默认以 BGR 三通道格式读取图片cv::Mat srccv::imread(road.jpg);// 判断图片是否读取成功if(src.empty()){std::cout读取图片失败std::endl;return-1;}// gray灰度图// edgesCanny 边缘检测结果图cv::Mat gray;cv::Mat edges;// 2. 将彩色图像转换为灰度图// 霍夫直线检测通常基于边缘图而边缘检测一般先在灰度图上进行cv::cvtColor(src,gray,cv::COLOR_BGR2GRAY);// 3. 高斯滤波降低噪声// 噪声可能会被 Canny 误检测为边缘所以先进行平滑处理// Size(5, 5)高斯核大小// 1.5标准差控制模糊程度cv::GaussianBlur(gray,gray,cv::Size(5,5),1.5);// 4. Canny 边缘检测// 50低阈值// 150高阈值// Canny 内部会完成梯度计算、非极大值抑制、双阈值检测和边缘连接cv::Canny(gray,edges,50,150);// 5. 用于保存检测到的直线// Vec4i 中保存一条线段的两个端点// line[0], line[1] 表示起点坐标 x1, y1// line[2], line[3] 表示终点坐标 x2, y2std::vectorcv::Vec4ilines;// 6. 概率霍夫直线检测// 输入必须是边缘图一般使用 Canny 的输出结果cv::HoughLinesP(edges,// 输入边缘图lines,// 输出检测到的线段1,// rho 分辨率单位为像素CV_PI/180,// theta 分辨率单位为弧度这里表示 1 度80,// 投票阈值越大检测出的直线越少50,// 最小线段长度小于该长度的线段会被过滤10// 最大线段间隔小于该间隔的线段会被合并);// 7. 遍历检测到的所有直线并画到原图上for(constautoline:lines){cv::line(src,// 要绘制的目标图像cv::Point(line[0],line[1]),// 线段起点cv::Point(line[2],line[3]),// 线段终点cv::Scalar(0,0,255),// 线条颜色BGR 格式这里是红色2// 线条宽度);}// 8. 显示 Canny 边缘检测结果cv::imshow(edges,edges);// 9. 显示绘制霍夫直线后的结果图cv::imshow(lines,src);// 10. 等待按键否则窗口会一闪而过cv::waitKey(0);return0;}7 OpenCV 中图像加法 cv::add() 与图像融合 cv::addWeighted() 有何区别cv::add() 是图像加法直接对两张图对应位置的像素进行相加结果超过 255 会进行饱和截断所以容易出现过曝。cv::addWeighted() 是加权融合计算公式是 dst src1 * alpha src2 * beta gamma可以通过 alpha 和 beta 控制两张图的融合比例常用于透明叠加、水印、图像融合和检测结果可视化。二者都要求输入图像的尺寸、通道数和数据类型一致。如果不一致需要先进行 resize() 或颜色空间转换。

相关新闻

Git 重置模式详解:四种重置方式的原理与应用场景

Git 重置模式详解:四种重置方式的原理与应用场景

引言 在日常使用 Git 进行版本控制的过程中,开发者时常需要调整提交历史或清理工作区状态。git reset 命令是最常用的历史重写工具之一,但其四种重置模式——软重置(soft)、混合重置(mixed)、硬重置&#x…

2026/8/26 17:11:37 阅读更多 →
scrapy爬取动态页面的正确姿势

scrapy爬取动态页面的正确姿势

不能否认, 它是相当出色的爬虫框架, 其借用的是相似的办法去爬取网页, 即所爬取的是静态页面, 然而实际情形是, 多数网站均为动态的, 我们所见到的正常页面皆是经浏览器渲染后的成果, 倘若径直运用爬取网页的方式, 极有可能无法获取到预期的数据。一种看似理所当然的办法, 便是…

2026/8/26 17:11:37 阅读更多 →
Level 4自动驾驶系统设计45——L2/L3 级软硬件架构 1

Level 4自动驾驶系统设计45——L2/L3 级软硬件架构 1

8.2 L3 级方案:单片 32G/64G 算力 SoC 运行端到端感知网络的性能瓶颈 8.2.1 责任边界重划对 L3 级单片方案的“物理拷问” 从 Level 2 级的“失效安全(Fault-Safe,见 8.1 节)”跨越到 Level 3 级有条件自动驾驶,汽车工业的核心变阵不仅是算法性能的提升,更是法律责任主…

2026/8/26 17:11:37 阅读更多 →

最新新闻

TVA与VLA双系统驱动的具身智能导航技术研究

TVA与VLA双系统驱动的具身智能导航技术研究

前沿技术探索:TVA智能体(简称TVA) TVA智能体(亦称“AI智能体视觉”或“TVA视觉智能体”)是依托Transformer架构与“因式智能体”理论构建的系统级视觉技术框架。它融合深度强化学习(DRL)、卷积…

2026/8/26 17:56:29 阅读更多 →
新课标英语写作不再只看成品!“过程写作法“家长必懂✏️

新课标英语写作不再只看成品!“过程写作法“家长必懂✏️

新课标有个重要变化:英语写作不再只看"写得好不好",而是关注"怎么写的"。这叫过程写作法——把写作拆成构思→起草→修改→定稿四个阶段,每个阶段都要教、都要练。但很多家长的感受是:孩子一写作文就发呆&…

2026/8/26 17:56:28 阅读更多 →
软考系统架构设计师论文涉及知识点之Redis(3)

软考系统架构设计师论文涉及知识点之Redis(3)

接前一篇文章:软考系统架构设计师论文涉及知识点之Redis(2) 本文内容参考: Redis 从入门到实战:一篇文章彻底搞懂 Redis 核心知识_redis从入门到实战-CSDN博客 软考架构师必看|Redis 10 个必考方向详解(附模拟题+踩分技巧)_redis 软考-CSDN博客 软考高级系统架构师之…

2026/8/26 17:56:28 阅读更多 →
Cursor 被收购,意味着什么

Cursor 被收购,意味着什么

摘要:八月中旬,SpaceX 宣布收购 Cursor,同一周 Cursor 推出 Origin 代码托管。两件事连起来看,AI 编程工具的护城河正在从"谁补全得快"变成"谁托管你的代码、跑通执行闭环"。这篇文章把这个信号拆开讲讲&…

2026/8/26 17:56:28 阅读更多 →
多协议设备接入AI平台,如何选择适配性更强的落地方案

多协议设备接入AI平台,如何选择适配性更强的落地方案

过去,智能家居行业长期被协议碎片化问题困扰,不同品牌、不同品类的设备往往形成独立生态孤岛,用户想要实现跨设备联动,常常需要购置多个网关、切换多款APP,使用体验大打折扣。近年来,随着AI技术与物联网的深…

2026/8/26 17:56:28 阅读更多 →
LLM 驱动漏洞传播验证:TransferFuzz-Pro 如何自动调试“继承“来的安全债

LLM 驱动漏洞传播验证:TransferFuzz-Pro 如何自动调试“继承“来的安全债

" 代码复用在现代软件开发中无处不在——96%的软件至少引入了一个第三方库。然而,复用的代码也会"继承"漏洞:一个 CVE 报告中的漏洞函数,可能已悄然扩散到数十个下游软件中。传统方法面临两大困境:代码相似性检测只…

2026/8/26 17:55:27 阅读更多 →

日新闻

Python random 模块常用函数详解:从入门到实战

Python random 模块常用函数详解:从入门到实战

目录 1. 引言2. 准备工作3. 基础随机函数4. 序列相关函数5. 随机种子与复现6. 实战案例7. 注意事项8. 常见问题与排查9. 总结 1. 引言 摘要: 本文系统介绍 Python 标准库 random 模块中最常用的随机数生成函数。内容涵盖基础随机函数(random()、unifor…

2026/8/26 0:00:40 阅读更多 →
《Microsoft Sql server 2008 Internals》读书笔记--第三章Databases and Database Files(2)

《Microsoft Sql server 2008 Internals》读书笔记--第三章Databases and Database Files(2)

《Microsoft Sql server 2008 Internals》索引目录: 《Microsoft Sql server 2008 Internals》读书笔记--目录索引 在上篇文章中,主要介绍了创建数据库的基本语法和FileGroup的初步知识。需要注意的是: 关于FileGroup 如果你的系统是用Raid设备直接存…

2026/8/26 1:18:18 阅读更多 →
政务AI智能体怎么建?三种模式、三步路径与四个误区

政务AI智能体怎么建?三种模式、三步路径与四个误区

政务AI智能体已经从概念试点阶段,转入了政务服务的常态化落地应用;在实际使用过程中,它能自主理解办事需求、辅助完成填报申报、开展材料预审,并联动多个系统协同作业,真正嵌入到政务办理的全流程当中。但在落地推进过…

2026/8/26 1:18:18 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/26 14:45:33 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/26 17:46:43 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/26 14:46:37 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/26 3:50:20 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/26 17:46:39 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/26 1:24:05 阅读更多 →