热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

计算机视觉面试题总结

概念:最大似然估计:最大似然估计是一种统计方法,最大似然估计函数在采样样本总数趋于无穷的时候达到最小方差。步骤:1.写出似

概念:

最大似然估计:最大似然估计是一种统计方法,最大似然估计函数在采样样本总数趋于无穷的时候达到最小方差。步骤:1.写出似然函数 2.取对数 3.求导数并令其为0。
最小二乘法:通过最小化误差的平方和寻找数据的最佳函数匹配。
非极大值抑制(NMS):

图像预处理方法


1. 膨胀和腐蚀操作

膨胀:将原图像 A 与任意形状的内核 B进行卷积。内核 B 有一个可定义的锚点,通常定义为内核的中心点。进行膨胀操作时,将内核 B 划过图像,将内核 B 覆盖区域的最大相素值提取,并代替锚点位置的相素。显然,这一最大化操作将会导致图像中的亮区开始”扩展” 。
作用:膨胀类似与 ‘领域扩张’ ,将图像的高亮区域或白色部分进行扩张,其运行结果图比原图的高亮区域更大.主要作用是去噪

腐蚀:图像A用卷积模板B来进行腐蚀处理,通过模板B与图像A进行卷积计算,得出B覆盖区域的像素点最小值,并用这个最小值来替代参考点的像素值.
作用:消除物体的边界点,使边界向内收缩,可以把小于结构元素的物体去除。

开运算:图像开运算是图像依次经过腐蚀、膨胀处理后的过程。
作用:图像被腐蚀后,去除了噪声,但是也压缩了图像;接着对腐蚀过的图像进行膨胀处理,可以去除噪声,并保留原有图像。

闭运算:图像闭运算是图像依次经过膨胀、腐蚀处理后的过程。
作用:图像先膨胀,后腐蚀,它有助于关闭前景物体内部的小孔,或物体上的小黑点。

2. 常用的插值方法有哪些?简述这些方法。

(1)最近邻插值法
就是令变换后像素的灰度值等于距它最近的输入像素的灰度值,应用于图像的缩放。
在这里插入图片描述

(2)双线性插值
首先跟最近邻插值一样,先坐标映射,得到目标图像坐标位于原图像的位置,但是这里不再对求出来的小数坐标取整,而是通过举例所求坐标最邻近的四个坐标点,对他们先从X方向作插值,再作Y方向的插值,得到最后的结果,因此也叫 双线性插值。

(3)双三次插值
函数 f 在点 (x, y) 的值可以通过矩形网格中最近的十六个采样点的加权平均得到,在这里需要使用两个多项式插值三次函数,每个方向使用一个。

(4)三线性卷积插值
三次卷积插值法可查看16个与输出最近的像元中心,并拟合一条平滑的曲线,使其穿过这些点从而找到该值。这不仅更改了输入的值,而且还可能导致输出值超出输入值的范围(可想象某表面出现汇或峰的情况)。

3. 常用的边缘提取方法有哪些

1. Sobel算子:Sobel算子是典型的基于一阶导数的边缘检测算子,由于该算子中引入了类似局部平均的运算,因此对噪声具有平滑作用,能很好的消除噪声的影响。

2. Laplacian算子(拉普拉斯):Laplacian算子则是通过求取像素的二阶导来获取边缘,Laplacian算子没有方向之分。在只关心边缘的位置而不考虑其周围的象素灰度差值时比较合适。Laplace算子对孤立象素的响应要比对边缘或线的响应要更强烈,因此只适用于无噪声图象。

3. Canny算子:Canny算子是一个具有滤波,增强,检测的多阶段的优化算子,在进行处理前,Canny算子先利用高斯平滑滤波器来平滑图像以除去噪声,Canny分割算法采用一阶偏导的有限差分来计算梯度幅值和方向,在处理过程中,Canny算子还将经过一个非极大值抑制的过程,最后Canny算子还采用两个阈值来连接边缘。
Canny边缘检测算法流程:
step1: 用高斯滤波器平滑图象;
step2: 用一阶偏导的有限差分来计算图像梯度的幅值和方向,得到图像的边缘;
step3: 对梯度幅值进行非极大值抑制
step4: 用双阈值算法检测和连接边缘,灰度变化大于high的,设置为强边缘像素,低于low的,剔除。

4. Prewitt算子: Prewitt算子是一种一阶微分算子的边缘检测,利用像素点上下、左右邻点的灰度差,在边缘处达到极值检测边缘,去掉部分伪边缘,对噪声具有平滑作用 。其原理是在图像空间利用两个方向模板与图像进行邻域卷积来完成的,这两个方向模板一个检测水平边缘,一个检测垂直边缘。

参考博客:
https://blog.csdn.net/qq_38109843/article/details/89598570
https://zhuanlan.zhihu.com/p/551665463


推荐阅读
  • 深入理解Redis的数据结构与对象系统
    本文详细探讨了Redis中的数据结构和对象系统的实现,包括字符串、列表、集合、哈希表和有序集合等五种核心对象类型,以及它们所使用的底层数据结构。通过分析源码和相关文献,帮助读者更好地理解Redis的设计原理。 ... [详细]
  • 深入解析JVM垃圾收集器
    本文基于《深入理解Java虚拟机:JVM高级特性与最佳实践》第二版,详细探讨了JVM中不同类型的垃圾收集器及其工作原理。通过介绍各种垃圾收集器的特性和应用场景,帮助读者更好地理解和优化JVM内存管理。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 深入解析:手把手教你构建决策树算法
    本文详细介绍了机器学习中广泛应用的决策树算法,通过天气数据集的实例演示了ID3和CART算法的手动推导过程。文章长度约2000字,建议阅读时间5分钟。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 尽管某些细分市场如WAN优化表现不佳,但全球运营商路由器和交换机市场持续增长。根据最新研究,该市场预计在2023年达到202亿美元的规模。 ... [详细]
  • 本文详细介绍了美国最具影响力的十大财团,包括洛克菲勒、摩根、花旗银行等。这些财团在历史发展过程中逐渐形成,并对美国的经济、政治和社会产生深远影响。 ... [详细]
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • 本文详细介绍了在企业级项目中如何优化 Webpack 配置,特别是在 React 移动端项目中的最佳实践。涵盖资源压缩、代码分割、构建范围缩小、缓存机制以及性能优化等多个方面。 ... [详细]
  • jQuery HooRay:一款自创的实用 jQuery 工具插件
    这款插件主要由作者在工作中积累的常用功能开发而成,旨在解决现有插件间的冲突及浏览器兼容性问题。通过整合和优化现有插件,确保其稳定性和高效性。 ... [详细]
  • 本文详细介绍了如何在WebStorm中配置File Watchers,以实现在编辑LESS文件时自动生成压缩后的CSS文件和对应的源映射(.map)文件。通过简单几步设置,可以大幅提升前端开发效率。 ... [详细]
author-avatar
mobiledu2402851203
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有