一、Pyimagesearch Gurus概念理解
模块1:计算机视觉基础
接受在计算机视觉处理中,所需要运用的图像的一些概念。
1.1、加载、显示、保存图像
从本地磁盘上通过imread函数获取图片后,可运用一个变量接收图片。
1、运用cv2.imread("图像路径",读取图片的方法)函数加载图片,返回图片变量。参数2为可选图像,读取图像的方式有多种:
2、运用cv2.imshow("窗口名字",图片变量)
3、运用cv2.imwrite("图像存入的路径与名字",需要存入的图片变量)
1.2、图像基础
1、像素:指图像中我们给定位置的光的"颜色",或“强度”,我们通常用像素来描述图片的大小。
2、像素的两种表示方式:灰度,像素值范围【0,255】。色彩,通常用RGB表示,用红、绿、蓝三个分量表示,每个分量取值范围【0,255】
3、像素网格:用来表示图像中的位置信息
4、访问和操作像素
运用shape函数:1、获取图像的像素的高和宽(h,w)=image.shape[:2]。2、获取图像的部分像素(截取图像) t1=image[0:y,0:x] 参数1:获取图像的高度。参数2:获取图像的宽度
1.3、绘图
绘制画布:np.zeros((300,300,3),dtype="uint8")#参数1:画布长、宽、颜色。参数2:数据类型
画线:cv2.line(image,(x,y),(x1,x2),color,pixel) 参数1:绘制的图像,参数2:线条的起点位置,参数3:线条的终点位置,参数4:绘制线条的颜色(运用RGB颜色),参数5(可选):绘制线条的像素宽度,-1表示填充矩形
画矩形:cv2.rectangle(image,(x,y),(x1,y1),color,pixel) 参数1:绘制的图像,参数2:矩形左上角位置,参数3:矩形右位置,参数4:绘制线条的颜色(运用RGB颜色),参数5(可选):绘制矩形线条的像素宽度,-1表示填充矩形
绘制圆:cv2.circle(image,(x,y),r,white,pixel) 参数1:绘制的图像,参数2:圆心位置,参数2:圆的半径,参数3:绘制圆线条的颜色(运用RGB颜色),参数5:绘制圆形线条的像素宽度,-1表示填充圆形
1.4.1、翻译
指图像的像素的移动
M=np.float32([[1,0,x],[0,1,y]]) 定义翻译矩阵,x表示左右移动像素,正数向右移动,负数向左移动。y表示上下移动像素,正数向下移动,负数向上移动
shifted=cv2.warpAffine(image,M,(image.shape[1],image.shape[0])) 翻译后图像的大小,参数1:被翻译的图像,参数2:定义的翻译的矩阵,参数3:翻译后图像的大下
1.4.2、图像的旋转
M=cv2.getRotationMatrix2D((x,y),Φ,multiple) 定义旋转矩阵,参数1:旋转的中心点,参数2:旋转的角度,参数3:旋转后图像放大的倍数
rotated=cv2.warpAffine(image,M,(w,h)) 旋转图像,参数1:被旋转的图像,参数2:定义的旋转矩阵,参数3:旋转后图像的大小
1.4.3、图像大小调整
resized=cv2.resize(image,dim,interpolation=cv2.INTER_AREA) 图像大小调整函数,参数1:被调整的图像,参数2:调整后图像的大小,参数3:图像变换后的插值方法。不同的插值方法,对图像变大后的处理效果有所不同
插值方法:
cv2.INTER_AREA邻近插值方法:使用邻域光学的增加或减小图像的大小
cv2.INTER_LINEAR双线性插值方法:
cv2.INTER_UBIC和cv2.INTER_LANCZOS4
imutils包中调整图像大小,是长宽等比例调整
imutils.resize(image,width=x,height=y,inter=cv2.INTER_AREA) 参数1:调整的图像,参数2:调整后图像宽度(未填参数3,高将等比例缩放),参数3:调整后图像高度(未填参数2,宽将等比例缩放),参数3:选用插值方法
1.4.4、翻转(图像的镜像)
图像翻转函数:flipped = cv2.flip(image, method) 参数1:被选装的图像,参数2:选装的方法,0:沿x轴翻转,即上下翻转,1:沿y轴方向翻转,即左右翻转,-1:沿俩个方向翻转
1.4.5、图像裁剪
可以运用图像裁剪的方法,将俩正图片进行拼接
t1=image[y:y1,x:x1] 参数1:裁剪图像的高度,y:高度起点位置,y1:高度结束位置;参数2:裁剪图像的宽度,x:宽度起点位置,x1:宽度结束位置