机器视觉——2019试卷

名词解释题

  1. 数字图像

    数字图像是指由被称作像素的小块区域组成的二维矩阵。将物理图像行列划分后,每个小块区域称为像素。

    每个像素包括两个属性:位置和亮度(或色彩)

  2. 图像的灰度直方图

    灰度直方图是关于灰度级分布的函数,是对图像中灰度级分布的统计。灰度直方图将数字图像中的所有像素,按照灰度值的大小,统计其出现的频率。直方图x轴表示0-255,256个像素值,y轴表示像素值的个数

  3. 欧式距离,街区距离,棋盘距离

    欧氏距离:平面或空间中两点的直线距离

    二维:

    img

    N维:

    img

    街区距离:两点在标准坐标系上的绝对轴距之和。(对于二维,街区距离就是两点沿x方向的距离和沿y方向的距离的和)

    二维:

    img
    N维:

    img
    ​ 棋盘距离:两点间沿某标准轴的最大距离。(对于二维,棋盘距离就是两点沿x方向的距离和沿y方向的距离中最大的那个)
    二维:
    img

    N维:
    img

  4. 信息量与信息熵

    信息量是随机事件X中某件事发生的概率的负对数,它是对信息多少的度量。一句话中的事发生的概率越大,则这句话的信息量越小(“明天太阳会升起”这句话的信息量就很小)。(体现在机器视觉中,它表示该符号所需的二进制位数。如序列aabbaccbaa,符号a出现的概率为0.5, 符号b出现的概率为0.3,符号c出现的概率为0.2,则a,b,c的信息量为1,1.737,2.322。总信息量:5* 1+3* 1.737+2* 2.322=14.855位,表示此字符串所需的总二进制位数)(信息量单位:bit,对应底数为2)

    h ( x ) = − log ⁡ 2 p ( x ) h(x) = - \log_2p( x) h(x)=log2p(x)

    信息熵是随机事件X的信息量的期望

H ( X ) = E ( h ( x i ) ) = − ∑ i = 1 n p ( x i ) ∗ log ⁡ 2 p ( x i ) H(X) = E(h(xi)) =-\sum^n_{i=1} p(xi)*\log_2p( xi) H(X)=E(h(xi))=i=1np(xi)log2p(xi)

简答与证明题

  1. 证明:二维离散灰度图像的均值与其(傅里叶)频谱的直流成分成线性关系

    对于一副长宽为N*N的图像f(x,y)其傅里叶变换为(exp是以e为底的指数函数,j是复数符号,j^2=-1):
    F ( u , v ) = 1 N ∑ x = 0 N − 1 ∑ y = 0 N − 1 f ( x , y ) e x p [ − j 2 π ( u x + v y ) / N ] F(u,v)=\frac{1}{N}\sum_{x=0}^{N-1}\sum_{y=0}^{N-1}f(x,y)exp[-j2π(ux+vy)/N] F(u,v)=N1x=0N1y=0N1f(x,y)exp[j2π(ux+vy)/N]
    其频谱的直流成分为F(0,0),得:
    F ( 0 , 0 ) = 1 N ∑ x = 0 N − 1 ∑ y = 0 N − 1 f ( x , y ) F(0,0)=\frac{1}{N}\sum_{x=0}^{N-1}\sum_{y=0}^{N-1}f(x,y) F(0,0)=N1x=0N1y=0N1f(x,y)
    图像均值:
    M E A N = 1 N 2 ∑ x = 0 N − 1 ∑ y = 0 N − 1 f ( x , y ) MEAN=\frac{1}{N^2}\sum_{x=0}^{N-1}\sum_{y=0}^{N-1}f(x,y) MEAN=N21x=0N1y=0N1f(x,y)
    则频谱的直流成分是二维离散灰度图像的均值的N倍,故二维离散灰度图像的均值与其(傅里叶)频谱的直流成分成线性关系

  2. 高斯拉普拉斯算子是经典的边缘检测算子,叙述其实现过程并推导高斯拉普拉斯算子的形式

    听说不考??

  3. 给出分段线性变换的定义并讨论线性变换的斜率参数取值对输出图像对比度的影响

    定义:有时为了更好地调节图象的对比度,需要在一些亮度段拉伸,而在另一些亮度段压缩,这种变换称为分段线性变换。

    线性点运算的灰度变换函数形式可以采用线性方程描述,即:s=ar+b,则a为斜率,b为截距

    对a,b做以下讨论:

    ① 当a>1时,输出灰度扩展,图像对比度增大。

    ②当a=1时,输出灰度既不扩展也不压缩,图像对比度不变。

    ③当0<a<1时,输出灰度压缩,图像对比度减小。

    ④当a<0时,较亮的区域变暗,较暗的区域变亮。若a=-1图像发生反色变换。

  4. 梯度是灰度图像边缘检测的重要工具,将梯度推广到向量梯度并构造彩色图像边缘检测方法。

    听说也不考???

计算题

  1. 给出Prewitt算子对应模板的公式,对如下图所示数据计算梯度向量的值(忽略最外侧的数据),并近似计算梯度的模。

在这里插入图片描述
​px =在这里插入图片描述

py =在这里插入图片描述
计算px,py梯度:如下图所示,px如滑动窗口般在矩阵上移动,每移动一次计算出一个数值,实际上计算出的梯度是针对px中心点的梯度,所以原矩阵最外层一圈的数值的梯度无法计算,故px计算过后得到的矩阵会比原矩阵小一圈。py计算过程与之相同。

在这里插入图片描述
这里只说px第一个点的计算过程:
− 1 ∗ ( 218 + 217 + 211 ) + 1 ∗ ( 207 + 199 + 189 ) = − 51 -1* (218+217+211)+1*(207+199+189) = -51 1218+217+211+1207+199+189=51

得到tx,ty矩阵(左三列tx,右三列ty):
在这里插入图片描述

梯度的模(题目中要求近似,故用绝对值相加,否则用平方加和再开方):
M = ∣ t x ∣ + ∣ t y ∣ M = |tx| + |ty| M=tx+ty
得矩阵:
在这里插入图片描述

  1. 给出欧拉数的计算公式,并计算2018四个字母的欧拉数
    (对于此题,我们暂不考虑联通类型)
    对于二维图像,欧拉数E = C - H,其中C为连接体数,H为孔洞数
    对于数字2:连接体数为1,孔洞数为0,欧拉数为1
    对于数字0:连接体数为1,孔洞数为1,欧拉数为0
    对于数字1:连接体数为1,孔洞数为0,欧拉数为1
    对于数字8:连接体数为1,孔洞数为2,欧拉数为-1
    故2018四个字母的欧拉数分别为1,0,1,-1
    对于连接体数,可以参考小写字母“j”,连接体分别为上方的点和下方的勾,故连接体数为2,孔洞为零。
    对于孔洞数,可以参考大写字母“B”,连接体只有一个就是B本身,但孔洞数为2。

  2. 对于如下图所示区域边界的4向链码,归一化链码和差分链码(以A为起点)。

在这里插入图片描述
在这里插入图片描述

​ 四向链码:0010 0033 3232 2212 2101

​ 归一化链码: 对于闭合的边界,无论我们平移它,得到的链码都是一样的。但是如果选取的起点不同,那么得 到的链码也会有所不同。这时候我们就要将它归一化。原理就是把我们得到的链码看成是一个自然数,将链码 循环写下去,选取构成的自然数数值最小的那组链码。这个就是归一化链码(选取长度与原链码相同)。上图的链码循换 0010 0033 3232 2212 2101 0010 0033 3232 2212 2101 0010 0033 3232 2212 2101 归一化链码为0 0033 3232 2212 2101 001(这个自然数以三个0开头,最小)

​ 差分链码:归一化链码解决了因为起点坐标不同而编码不同的问题,但仍有不足。如果我们将边界旋转,那么它的归一化链码也会发生变化。此时我们用差分链码来表示。差分链码的计算方法如图:

在这里插入图片描述

  1. 给出从RGB彩色模型到HSI彩色模型的转换公式,并计算RGB颜色空间中(255,240,0)在HSI颜色模型中的取值(如需要,可以用开方,反余弦等函数来表示)

RGB转HSI公式:
I = 1 3 ( R + G + B ) I = \frac{1}{3}(R+G+B) I=31(R+G+B)

S = 1 − 3 ( R + G + B ) [ m i n ( R , G , B ) ] S=1-\frac{3}{(R+G+B)}[min(R,G,B)] S=1(R+G+B)3[min(R,G,B)]

H = arccos ⁡ [ ( R − G ) + ( R − B ) ] / 2 [ ( R − G ) 2 + ( R − B ) ∗ ( G − B ) ] 0.5 H=\arccos{\frac{[(R-G)+(R-B)]/2}{[(R-G)^2+(R-B)*(G-B)]^{0.5}}} H=arccos[(RG)2+(RB)(GB)]0.5[(RG)+(RB)]/2
将(255,240,0)归一化:
r = R / ( R + G + B ) ; g = G / ( R + G + B ) ; b = B / ( R + G + B ) r = R / (R+G+B);g = G / (R+G+B);b = B / (R+G+B) r=R/(R+G+B)g=G/(R+G+B)b=B/(R+G+B)

得(0.515,0.485,0)
带入得HSI取值为(0.333,1,arccos(0.273/√0.501))

程序设计题

import cv2
import numpy as np

img = cv2.imread('img.png') # 以BGR读入图片 

cv2.imshow('src',img)
img = img.astype('float64')


kenelx = np.array([[-1,0,1],[-1,0,1],[-1,0,1]])  # 水平梯度
kenely = np.array([[-1,-1,-1],[0,0,0],[1,1,1]])  # 垂直梯度

prewittx = cv2.filter2D(img,-1,kenelx)  # 二维卷积,计算垂直梯度
prewitty = cv2.filter2D(img,-1,kenely)  # 二维卷积,计算水平梯度
prewittimg = np.sqrt(np.square(prewittx) + np.square(prewitty))  # 计算梯度的模,绝对值加和是梯度模的近似

# 计算模后img的像素值分布不再是0-255,而可能超过了255,为了回到0-255,需要归一化
max, min = np.max(prewittimg), np.min(prewittimg)
newimg = (prewittimg-min)/(max-min)*255
newimg = 255 - newimg  # 反色操作
newimg = newimg.astype('uint8')

cv2.imshow('new_img',newimg)
cv2.waitKey(0)

在这里插入图片描述
在这里插入图片描述

三次作业

作业二:把某地天气预报的内容看作一个信源,它有6种可能的天气:晴天(概率为0.30),阴天(概率为0.20),多云(概率为0.15),雨天(概率为0.13),大雾(概率为0.12)和下雪(概率为0.10)。如何用霍夫曼编码对其进行编码?平均码长分别是多少?

编码步骤:先将所有概率从小到大排一行,然后找到其中最小的两个概率,从行中取出并相加,得到新概率,添加到行中得到新行,重复上述步骤直到最终结果为1。哈夫曼树则是从下往上构造,每找到两个最小节点,就当做子结点,并将两者的和当做父节点,从下往上构造,直到根节点1在这里插入图片描述
得出几种天气的哈夫曼编码(哈夫曼编码不唯一)
晴天(0.30):11(码长为2)
阴天(0.20):00
多云(0.15):101 (码长为3)
雨天(0.13):100
大雾(0.12):011
下雪(0.10):010

A C L = ∑ i = 1 n L i ∗ P i ACL = \sum_{i=1}^{n}L_i*P_i ACL=i=1nLiPi
ACL:平均码长,L:码长,P:概率
代入公式得:
A C L = ( 0.3 + 0.2 ) ∗ 2 + ( 0.15 + 0.13 + 0.12 + 0.10 ) ∗ 3 = 2.5 ACL= (0.3+0.2)*2 + (0.15+0.13+0.12+0.10)*3=2.5 ACL=(0.3+0.2)2+(0.15+0.13+0.12+0.10)3=2.5
平均码长为2.5

作业一及作业三在计算题第一题Prewitt算子中考察过,Prewitt算子做会即可,同时要注意记忆Roberts和Sobel算子(P137)

四次实验

点我下载代码

二维码下载:
在这里插入图片描述

特别添加

通道混合器代码

import cv2

img = cv2.imread('img.png')
cv2.imshow('src', img)

B = img[:,:,0]  # cv2读取出来的图像通道0,1,2分别对应BGR
G = img[:,:,1]  # 而非平时惯用的RGB
R = img[:,:,2]

# w1 w2 w3 加和最好不要大于1,否则可能使被混合的通道
# 像素值大于255造成溢出
w1 = 0.2
w2 = 0.3
w3 = 0.4

# 假设我们给通道R进行通道混合(你也可以选择其他通道)
R = w1*R + w2*G + w3*B  # 将RGB三通道的值分别乘以一个系数并加和,赋值给R
img[:,:,0] = B
img[:,:,1] = G
img[:,:,2] = R

cv2.imshow('img_mix', img)
cv2.waitKey(0)

效果图
在这里插入图片描述

  • 30
    点赞
  • 109
    收藏
    觉得还不错? 一键收藏
  • 19
    评论
Halcon机器视觉软件是一款功能强大的图像处理软件,被广泛应用于机器视觉领域。以下是关于Halcon软件的考试题。 1. Halcon软件有哪些主要功能? Halcon软件具有图像处理、特征提取、目标定位与识别、形状分析、3D视觉等主要功能。它支持多种图像处理算法和技术,并提供了强大的编程接口,方便用户进行二次开发。 2. 请简述Halcon软件的特征提取功能。 Halcon软件可以通过特征提取功能从图像中提取出感兴趣的特征。它支持颜色、纹理、形状等多种特征的提取,并可以进行特征的分类和识别。通过特征提取,可以实现对图像中的目标进行定位、跟踪和识别。 3. 请说明Halcon软件中的3D视觉功能。 Halcon软件提供了强大的3D视觉功能,可以实现对三维场景的建模、重建和测量。通过3D视觉功能,可以获取物体的尺寸、形状、姿态等信息,从而实现对物体的精确定位和识别。 4. 请简要介绍Halcon软件的编程接口。 Halcon软件提供了多种编程接口,包括C、C++、C#、Python等。用户可以根据自己的编程习惯选择合适的接口进行开发。这些接口提供了丰富的函数库和工具,方便用户进行图像处理和机器视觉的开发与应用。 5. Halcon软件在工业自动化中的应用有哪些? Halcon软件在工业自动化中有广泛的应用,包括零件检测、物体识别、机器人导航、AOI检测等。它可以实时处理大量的图像数据,并能够快速、准确地对目标进行定位和识别,从而提高生产效率和产品质量。 以上是关于Halcon机器视觉软件的一些考试题目。Halcon软件具有强大的图像处理和机器视觉功能,适用于各种工业自动化领域的应用。希望以上回答能对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值