代码运行无报错,但是本来应该文件夹抽样20张,每一张图片巡线路线判断转弯情况并附上去噪后的图,每个三秒切换下一张图的输出和图片,但是运行后无报错,能抽样建立新文件夹,但是无相关输出和图片,求大家看一看,刚学python还是有很多不懂的地方,请大家能尽量通俗一点吧,代码如下:
import os,random,shutil,cv2,glob
import numpy as ny
def moveFile(file,tar):
#取图片的原始路径
path=os.listdir(file)
#自定义选取图片数目
picknumber=20
#随机选取picknumber数量的样本图片
sample=random.sample(path,picknumber)
for name in sample:
shutil.copy(file+name, tar+name)
if __name__=='__main__':
#源图片文件夹路径
file="D:/pingan/shiyan1/guidao/"
#移动到新的文件夹路径
tar="D:/pingan/shiyan1/chouyang/"
for oneDir in os.listdir(file):
# A的二级目录
onefileDir=file+oneDir+"/"
# B的二级目录
onetarDir=tar+oneDir+"/"
# 判断文件夹是否存在,不存在则创建
if not os.path.exists(onefileDir):
os.makedirs(onefileDir)
if not os.path.exists(onetarDir):
os.makedirs(onetarDir)
moveFile(onefileDir,onetarDir)
#表示能读取文件夹底下的所有文件
file_path="D:/pingan/shiyan1/chouyang/left/*/"
images_path=glob.glob(os.path.join(file_path+'*.png'))
#遍历
for i in images_path:
if True:
#图片处理
tu=cv2.imread(i)
#灰度化
tu_grey=cv2.cvtColor(tu,cv2.COLOR_BGR2GRAY)
#大津法二值化
retval,er=cv2.threshold(tu_grey,0,255,cv2.THRESH_OTSU)
#膨胀
er=cv2.dilate(er,None,iterations=2)
#腐蚀
er=cv2.erode(er,None,iterations=6)
#窗口大小自适应
cv2.namedWindow("er",cv2.WINDOW_FREERATIO)
#显示黑线
cv2.imshow("er",er)
#取出第400行的值
line_400=er[400]
try:
#黑色点的数量
count_black=ny.sum(line_400==0)
#找出黑点位置
place_black=ny.where(line_400==0)
#防止报错
if count_black==0:
count_black=1
#找出黑线中心的位置
center=(place_black[0][count_black-1]+place_black[0][0])/2
#相对位置的比较
direction=center-320
#判断相对位置
if direction>0:
print("右转")
elif direction<0:
print("左转")
else:
print("直行")
except:
pass
cv2.waitKey(3000)