系列文章目录
《计算机视觉技术与应用》-----第二章 图像处理基础
《计算机视觉技术与应用》-----第三章 图形用户界面
《计算机视觉技术与应用》-----第四章 图像变换
《计算机视觉技术与应用》-----第五章 边缘和轮廓
《计算机视觉技术与应用》-----第六章 边缘和轮廓
《计算机视觉技术与应用》-----第七章 边缘和轮廓
《计算机视觉技术与应用》----- 重点复盘
前言
一、重点掌握
填空(15个题),判断(10个题),简答(1个题)共60分。
第一章 OpenCV起步
- 安装Numpy命令是pip install Numpy。
第二章 图像处理基础
- 在Python程序中,OpenCV使用NumPy数组来存储图像。 OpenCV默认的图像格式为BGR,即3通道图像数组的3个维度依次为B(蓝色)、G(绿色)和R(红色)通道的像素。
- 使用zeros()函数创建数组,数组元素默认值是0。
- img.shape的输出结果为(512,512,3),说明表示彩色图像的一个三维数组,3个值依次表示图像的高度、宽度和通道数;图像的分辨率为512x512。
- OpenCV播放视频的实质是逐帧读取和显示图像。 通常,计算机将灰度处理为256级,0表示黑色,255表示白色。
cv2.split()函数用于拆分通道。
第三章 图形用户界面
- 绘制矩形的函数是cv2.rectangle() ,绘制圆的函数是cv2.circle()。
- 绘制椭圆的函数是cv2.ellipse()。
- 绘制文本的函数是cv2.putText()。
第四章 图像变换
- cv2.COLOR_BGR2RGB:将BGR色彩空间转换为RGB色彩空间。
- GRAY色彩空间通常指8位灰度图像,其颜色取值范围是**[0,256]** 。
- YCrCb色彩空间用亮度Y、红色Cr和蓝色Cb表示图像。
- 图像翻转函数是cv2.flip()。
- HSV色彩空间使用色调、饱和度和亮度表示图像。
- 仿射变换包含了平移、旋转、缩放等操作。
- 图像模糊主要目的是消除图像噪声和边缘。
- 均值滤波是指以当前点为中心,用其周围N x N个点像素值的平均值代替当前点的像素值。
- 中值滤波是取中间值作为邻域中心点的像素值。
- 开运算先将图像执行腐蚀操作,再对腐蚀结果执行膨胀操作。
第五章 边缘和轮廓
- 图像的边缘是指图像中灰度值发生急剧变化的位置,边缘检测的目的是为了绘制出边缘线条。
- 边缘检测的结果通常为黑白图像,图像中的白色线条表示边缘。
第六章 直方图
- 直方图横坐标表示图像像素的灰度级,纵坐标表示像素灰度级的数量。
- 二维直方图统计像素的色相和饱和度,用于查找图像的颜色直方图。
第七章 模版匹配和图像分割
- 模板匹配是指在当前图像中查找与目标图像相近的部分。图像分割是指将前景对象从图像中分割或提取出来。
- 单目标匹配是指输入图像中只存在一个可能匹配结果。
第八章 特征检测
- ORB特征检测以FAST特征检测器和BRIEF描述符为基础进行了改进,以获得更好的特征检测性能。
FAST特征检测器主要根据像素周围16个像素的强度和阈值参数来判断像素是否为关键点。
二、编程题
两个编程题,共40分。
第二章习题
```python
#习题2-1.py:创建一幅大小为240×320的图像,图像中心是一个大小为100×100的红色正方形,周围是黑色
import cv2
import numpy
img = numpy.zeros((240,320,3),dtype=numpy.uint8) #创建黑色背景
img[70:170,110:210,2]=255 #创建红色区域(100*100)
cv2.imshow('xiti2-1',img)
cv2.waitKey(0)
import cv2
img=cv2.imread('lena.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('GRASCALE',img)
img=cv2.imread('lena.jpg',cv2.IMREAD_REDUCED_COLOR_2)
cv2.imshow('COLOR_2',img)
cv2.waitKey(0)
cv2.waitKey(0)
import cv2
img=cv2.imread('lena.jpg')
h,w,s=img.shape
h1=int(h/2)
w1=int(w/2)
img[h1-40:h1+40,w1-50:w1+50,:]=0
cv2.imshow('xiugai',img)
cv2.waitKey(0)
import cv2
img = cv2.imread('lena.jpg')
cv2.imshow('lena',img)
b,g,r=cv2.split(img)
cv2.imshow('lena-b',b)
cv2.imshow('lena-g',g)
cv2.imshow('lena-r',r)
cv2.waitKey(0)
import cv2
import numpy
src1 = cv2.imread('lena.jpg')
h,w,s=src1.shape
img = numpy.zeros((h,w,s),dtype=numpy.uint8)
h1=int(h/2)
w1=int(w/2)
img[h1-40:h1+40,w1-60:w1+60,:]=255
img2=cv2.bitwise_and(src1,img)
cv2.imshow('yanmo',img2)
cv2.waitKey(0)
第五章习题
import cv2
img = cv2.imread('bee.jpg')
cv2.imshow('original',img)
img2 = cv2.Laplacian(img,cv2.CV_8U,ksize=1)
cv2.imshow('L',img2)
cv2.waitKey(0)
import cv2
img = cv2.imread('bee.jpg')
cv2.imshow('original',img)
img3 = cv2.Sobel(img,cv2.CV_8U,0,1)
cv2.imshow('C',img3)
cv2.waitKey(0)
import cv2
img = cv2.imread('bee.jpg')
cv2.imshow('original',img)
img4 = cv2.Canny(img,100,200,apertureSize=3)
cv2.imshow('Canny',img4)
cv2.waitKey(0)
import cv2
import numpy as np
img=cv2.imread('shapes.jpg')
cv2.imshow('original',img)
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret,img2=cv2.threshold(gray,125,255,cv2.THRESH_BINARY)
c,h=cv2.findContours(img2,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
img3=np.zeros(img.shape, np.uint8)+255
img3=cv2.drawContours(img3,c,-1,(0,0,255),2)
cv2.imshow('Contours',img3)
cv2.waitKey(0)
cv2.destroyAllWindows()
总结
|