哈尔滨建站模板搭建,阳江哪里做网站,移动互联网开发应聘,信誉好的宜昌网站建设1.什么是计算机视觉#xff1f; \qquad计算机视觉#xff08;computer vision#xff09;#xff1a;机器试图理解所看到的目标。计算机视觉通过算法去尝试理解视觉信息#xff0c;从而将理解转化为分类#xff0c;决策#xff0c;模式观察等等。
2.计算机视觉的应用 \…1.什么是计算机视觉
\qquad计算机视觉computer vision机器试图理解所看到的目标。计算机视觉通过算法去尝试理解视觉信息从而将理解转化为分类决策模式观察等等。
2.计算机视觉的应用
\qquad物体检测、字符识别、指纹识别等等。
3.计算机视觉如何理解视觉信息
\qquad计算机理解视觉信息有两种方式一种是自下而上bottom-up一种是自上而下up-bottom。两者的区别是计算机的注意机制不同。
3.1由下而上bottom-up的方式
\qquad所谓计算机由下而上的理解视觉信息是指计算机只关注图像中的兴趣区域获取对象特征
3.1由上而下up-bottom的方式
\qquad所谓计算机由上而下的理解视觉信息是指计算机关注图像中的整体区域即通过全局信息来得到当前的图像关注点利用背景的视觉信息获取对对象的理解。
4.图像
4.1如何让计算机对图像进行处理
\qquad图像即数组。 \qquad图像由一个个像素点组成图像的单位面积像素点越多图像的分辨率越高而每个像素点我们可以由数字确定表示计算机可以对这些表示像素点的数值进行处理从而进行图像处理。 \qquad每一张图像我们都可以看成一个二维网格每一个像素都是组成网格的最小单元。
4.2基于RGB的像素表示
\qquad每一个像素点都有一个颜色那么这个颜色如何使用数值表示呢在RGB色彩原理中任何一种颜色都可以由一个3 ×\times× 1的向量[R,G,B]表示。 RGB配色表 \qquad 查看RGB配色表我们可以看出各种颜色的RGB的值即向量的值。比如黑色[0,0,0]白色[255,255,255]其它颜色也都分布在[0,0,0]和[255,255,255]之间其中当RGB时颜色为不同程度的灰色当颜色为彩色时[R,G,B]三者不完全相同。 \qquad为了减轻计算机的计算量当图片为二进制图像或者灰度图像时因为RGB所以我们只采用1×\times× 1的数值表示像素颜色即每个像素点只有一个通道当图像为彩色时我们采取3×\times× 1的向量[R,G,B]表示每个像素点即每个像素点有三个通道。 \qquad假如一张灰度图像长有200个像素点宽有150个像素点所以可以使用200×\times× 150的矩阵表示假如一张彩色图像长有200个像素点宽有150个像素点那么可以用200×\times× 150×\times× 3的3D矩阵阵列来表示。 \qquad 基于RGB的色彩组成原理我们对图像做很多操作比如图像分割利用同一张图像中不同物体对象间的色彩差异查找对象间的边缘从而对同一张图片中的不同对象进行分割寻找角点在对图像进行分割之后查找图像以获得某些特征也称为角点。
5.图像处理基础函数
\qquad我们使用python对图像进行处理需要安装opencv-pythonmatplotlib等。 \qquad 5.1 读取图像
import cv2
import matplotlib.pyplot as plt
import timep_color cv2.imread(F:\dog.jpg)
print(p_color.shape)
print(p_color)\qquad通过cv.imread()可以读取图片生成数值矩阵上面这张dog图片的矩阵形状为520×\times× 600×\times× 3是一张彩色图像。 \qquad 5.2 彩色图像灰度化opencv是对灰度图像进行处理所以需要把彩色图像处理为灰度图像。
import cv2
import matplotlib.pyplot as pltp_color cv2.imread(F:\dog.jpg)
p_gray cv2.cvtColor(p_color,cv2.COLOR_BGR2GRAY)
print(p_gray.shape)\qquad通过cv2.cvtColor(p_color,cv2.COLOR_BGR2GRAY)将p_color转换为灰度图片上述代码输出矩阵为520×\times× 600。
\qquad 5.2 矩阵图像的可视化
import cv2
import matplotlib.pyplot as pltp_color cv2.imread(F:\dog.jpg)
p_gray cv2.cvtColor(p_color,cv2.COLOR_BGR2GRAY)
plt.imshow(p_gray,cmapgray)
plt.show()\qquad plt.imshow(p_gray,cmap‘gray’) plt.show()将灰度化的图像显示。
6.人脸数目检测
import cv2
import matplotlib.pyplot as plt# 载入图片
p_color cv2.imread(../face1.jpg)
# 将图像灰度化
p_gray cv2.cvtColor(p_color,cv2.COLOR_BGR2GRAY)
#展示灰度图像
plt.imshow(p_gray,cmapgray)
plt.show()# 载入haarcascade级联分类器cascade classifier
haarcascade cv2.CascadeClassifier(../haarcascade_frontalface_alt.xml)
# 检测图像人脸个数
faces haarcascade.detectMultiScale(p_gray, scaleFactor1.1, minNeighbors5)
print(人脸的个数,len(faces))# 给检测到的人脸加矩形框
for (x, y, w, h) in faces:cv2.rectangle(p_color, (x, y), (xw, yh), (0, 255, 0), 2)
# 展示检测到的人脸并加矩形框
plt.imshow(cv2.cvtColor(p_color, cv2.COLOR_BGR2RGB))
plt.show()上述代码依次输出 \qquad图片face1haarcascade_frontalface_alt.xml和程序代码可以查看人脸数目检测