欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第一章计算机视觉引论

程序员文章站 2022-04-26 13:32:25
...

一、基础作业

  1. 视觉系统都有哪些构成要素? 以机械臂视觉控制系统为例,说明视觉系统的构成要素。
    机械臂视觉控制系统:光源(室内光线或专用光源)、相机(放在机械臂前端的单相机)、主机(台式计算机或嵌入式处理器)、视觉处理系统(用C++或其他语言编写的视觉识别算法及程序)。

2.尝试从模仿人类视觉处理流程的角度,阐述本对课程内容组织的理解。进一步在网上搜索,找到自己认为学习过程中最值得参考的1-2本书(不要太厚)
以Marr视觉计算理论为基础,从2维最基本的基元特征的提取开始,过度到2.5维对三维特征的粗略描述,再到三维视觉的重建,步步深入。
老师课中推荐的前两本:谷口庆治的数字图像处理 基础篇、冈萨雷斯的数字图像处理,之所以选这两本是因为内容比较基础,并且一本厚一本薄可以相互补充的使用。等到基础掌握以后可以找几本著作来看。

3.什么是光通量和辐照度?说明几个常见光源的光通量,以及几个常见照明环境的辐照度。
光通量(luminous flux)指人眼所能感觉到的辐射功率,它等于单位时间内某一波段的辐射能量和该波段的相对视见率的乘积。白炽灯和卤钨灯为12~24lm/W、荧光灯和HID灯(气体放电灯)为50~120lm/W、LED灯目前在110lm/W左右。
辐射照度又称辐照度,是受照面单位面积上的辐射通量,单位为瓦每平方米(W/㎡)。与太阳垂直的平面上的辐照度(太阳常数)为1535W/m2,白光 LED 光源照射的辐照度为 600W/m2)

  1. 结合颜色空间示意图,简述HSI颜色空间中各通道的物理意义,并结合图像实例说明。
    第一章计算机视觉引论
    HSI(Hue-saturation-intensity)分别表示
    色调:是指图像的相对明暗程度。图中点与圆锥中心连线在圆锥底面角度的投影,决定不同的色彩区别
    饱和度:是指色彩的鲜艳程度,饱和度取决于该色中含色成分和消色成分的比例,图中点与圆锥中心线的距离,越往外越鲜艳
    光强:是指通过该点的平均能流密度,图中沿着圆锥母线的点的高度,越往上越明亮。
    第一章计算机视觉引论
    如图,从做到右为色调的变化,从上到下为饱和度的减小。
    第一章计算机视觉引论
    如图,在HSI中,从上往下亮度越来越大。

  2. 说明彩色图像传感器及γ校正的基本原理。
    图像传感器是利用光电器件的光电转换功能。将感光面上的光像转换为与光像成相应比例关系的电信号。
    伽马校正:目的:在通常的照明(既不是漆黑一片,也不是令人目眩的明亮)的情况下,人类的视觉大体有伽马或者是幂函数的性质。如果不将图像进行伽马编码,那么数据位或者带宽的利用就会分布不均匀——会有过多的数据位或者带宽用来表示人类根本无法察觉到的差异,而用于表示人类非常敏感的视觉感知范围的数据位或者带宽又会不足。
    原理:针对影片或是影像系统里对于光线的亮度或是三色刺激值(三色系统中,与待测光达到颜色匹配所需的三种原色刺激的量)所进行非线性的运算或反运算。

二、进阶作业

  1. 在计算机上安装OpenCV 3.0以上版本,为后续作业准备。开发语言可采用C++或Python。
    在安装过程中遇到了网址文件下载不了的情况,仔细检查过后发现是因为没有用谷歌内核浏览器,换浏览器后解决

  2. 创建第一个视觉程序“Hello,world!”,显示Lena图片。具体效果参看课程PPT。

import cv2

import cv2 as cv

img = cv.imread(r'D:\opencv\opencv\sources\samples\data\lena.jpg')
cv.imshow('Hellow,world!', img)
cv.imwrite('Hellow,world!.png', img)

cv.waitKey()
cv.destroyAllWindows()

第一章计算机视觉引论
3. 对Lena图像,分解得到RGB分量及HSV分量,显示各分量,并对结果进行比较说明。
RGB分量显示

# RGB分量显示代码
import cv2 as cv

filename = r'D:\opencv\opencv\sources\samples\data\lena.jpg'
img = cv.imread(filename)

imgRed = img.copy()
imgRed[:, :, 0:2] = 0
imgGreen = img.copy()
imgGreen[:, :, 0] = 0
imgGreen[:, :, 2] = 0
imgBlue = img.copy()
imgBlue[:, :, 1:3] = 0


cv.imshow('Red', imgRed)
cv.imshow('Green', imgGreen)
cv.imshow('Blue', imgBlue)

cv.waitKey()
cv.destroyAllWindows()

显示结果:
第一章计算机视觉引论
第一章计算机视觉引论
第一章计算机视觉引论
HSV分量显示

# HSV分量显示代码
import cv2 as cv

filename = r'D:\opencv\opencv\sources\samples\data\lena.jpg'
img = cv.imread(filename)
img = cv.cvtColor(img, cv.COLOR_BGR2HSV)
imgValue = img.copy()
imgValue[:, :, 0:2] = 0
imgHue = img.copy()
imgHue[:, :, 1:3] = 0
imgSaturation = img.copy()
imgSaturation[:, :, 0] = 0
imgSaturation[:, :, 2] = 0


cv.imshow('Value', imgValue)
cv.imshow('Hue', imgHue)
cv.imshow('Saturation', imgSaturation)

cv.waitKey()
cv.destroyAllWindows()

第一章计算机视觉引论
第一章计算机视觉引论
第一章计算机视觉引论
对比:BGR显示的三张图分别为Red、Green、Blue的成分多少,越亮表示成分越多。越暗表示相应的成分越少。
HSV显示的三张图分别为Value、Hue、Saturation的成分。
由HSV分量范围(如下图)可知,在Hue分量中紫色值较高,黑灰白红分布较广,与lena原图中分布吻合。在Value分量中,原图中亮的部分比较明显。在saturation分量中,色彩鲜艳的部分比较明显,原图中灰白色部分显得暗淡。
第一章计算机视觉引论