智能车1(OpenCV-Python)
- 新建python文件
后缀名为.py - 运行python文件(用VScode可直接跳过)
命令提示符输入cmd,cd进入路径(若需换盘以D盘为例,输入d:),找到对应Python文件输入python xx.py
即可运行文件(xx为文件名)路径不要有中文 - 图片应在包含python文件夹下
- opencv采用BGR模式,而不是RGB
应用1
import cv2
#图片导入
img = cv2.imread('lena.jpg') #读入lena.jpg
#img = cv2.imread('lena.jpg',cv2.IMREAD_GRAYSCALE)以灰度图显示
cv2.imshow('s',img) #标题为s展示
cv2.waitKey(0) #按任意键退出
img = cv2.imread('lena.jpg') # cv2库读取图片默认读取BGR格式,plt库以RGB格式显示图片,需要转化
plt.imshow(imutils.opencv2matplotlib(img))#显示彩色图片
print(img.shape)
复制图片
cv2.imwrite("lena_gray.jpg",img) #在相应文件夹下复制出的图像以lena_gray.jpg命名
图像的二值化
ret,img2 = cv2.threshold(img,100,255,cv2.THRESH_BINARY) #(图像名,阈值,最大值,二值化类型)
图像的缩放
img_resize = cv2.resize(img,None,fx=0.2,fy=0.3) #放大缩小 元组:None 比例:fx,fy轴缩放
应用2
形态学分析
腐蚀:取核中像素值的最小值代替锚点位置的像素值,这样就会使图像中较暗的区域面积增大,较亮的的区域面积减小
膨胀:膨胀操作和腐蚀操作正好相反,是取核中像素值的最大值代替锚点位置的像素值,这样会使图像中较亮的区域增大,较暗的区域减小。如果是一张黑底,白色前景的二值图,就会使白色的前景物体颜色面积变大
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(5,5)) #核
eimg = cv2.erode(img,kernel,iterations=2) # 腐蚀
dimg = cv2.dilate(img,kernel) #膨胀
dst1 = cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel) #开运算(先腐蚀后膨胀)
dst2 = cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel) #闭运算(先膨胀后腐蚀)