关于Python-OpenCV:批量读取模板的方法

关于Python-OpenCV:批量读取模板的方法

题记:最近在同学的实验室搞机械臂项目,目标是做一个对实验室器材识别并且夹取的小车。由于大家都是小白过程中还是遇到很多问题,故边学习边进行博客编写,待日后回顾参考

一、OpenCV关于模板提取的问题:

如何做到批量读取文件是入门Python的第一个目标,参考了liulina603-os.walk() 在windows 和linux 上遍历不一样以及简单随风-OpenCV: 图片的缩放的博客后,我自己写了一个小小的程序:

import numpy as np
import argparse
import cv2
import os

def cv_show(name,img):
    cv2.imshow(name,img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
#创建一个方便查看图片的函数
root_path = ("/home/xxx/xxx/xxx/test/")
#上面的路径可以根据读者的路径进行改变
dir = root_path+"image"+"/"
#上面的代码看起来有点多余,但其实还是需要的
list = os.listdir(dir)
#利用os自带的遍历函数(windows是os.walk)
print(list)
#在这里查看传入到list中的文件名称,或发现只有文件名称
i=-1
images = [0]
#创建一个列表
#========以下 开始进行批量读取=====================
for image in list:
    i = i+1
    #不能改成i ++
    print (image)
    #会发现 image这个遍历变成了一个个的单独的名称
    path = dir+image
    #将文件名称增加到 dir 中形成一个完整的 path 方便之后cv2.imread
    print (path)
    ReadImage = cv2.imread(path,cv2.IMREAD_GRAYSCALE)
    #转成灰度图
    print (ReadImage.shape)
    W = ReadImage.shape[0]
    H = ReadImage.shape[1]
    RsH = int(H * 0.3)
    RsW = int(W * 0.3)
    RsImage = cv2.resize(ReadImage,(RsH,RsW))
	#因为原图可能比较大,所以在这里加了一个缩小函数,目的是让该图片容易看一点
    print (RsImage.shape)
    #RoiImage = ReadImage[300:800,180:600]
    #cv_show("read",RsImage)
    images.append(RsImage)
    #将变化后的变量数据用append 函数添加到images列表里面
    images[i] = (RsImage)
    cv_show("image",images[i])
    #这里显示每一张图片
    #如果要看每一次images列表的变化,可以直接   print (images)
二、最近在从Anaconda-Jupyter-Python转到VSCode遇到的一些问题
  1. 一般在Jupyter notebook上面import cv2是非常直接的,但是转移到VSCode就需要改成
    from cv2 import cv2
    
  2. 在用arguments引入参数的时候并不是像ecsplicite一样直接就可以打开一个可视化界面引入文件路径,而是要在luanch.json文件中进行编辑,这一项是比较麻烦的。关于Python-OpenCV:批量读取模板的方法_第1张图片
结束语:最近还在继续学习OpenCV当中,希望各位CSDNer大佬们能多多指教

你可能感兴趣的:(OpenCV)