python opencv图像二值化批量处理
from skimage import data_dir,io,transform,color,filters
import numpy as np
import cv2
def convert_gray(f):
rgb=io.imread(f) #依次读取rgb图片
#gray=filters.gaussian(rgb, sigma=1, output=None, mode='nearest', cval=0, multichannel=None, preserve_range=False, truncate=4.0)
#高斯
#dst=transform.resize(gray,(1920,1080)) #将灰度图片大小转换为256*256
gray = cv2.cvtColor(rgb,cv2.COLOR_RGB2GRAY) #要二值化图像,要先进行灰度化处理
#全局阈值
#ret, binary = cv2.threshold(gray,0,255,cv2.THRESH_BINARY | cv2.THRESH_OTSU) #全局阈值使用THRESH_OTSU大津法
#ret, binary = cv2.threshold(gray,127,255,cv2.THRESH_BINARY_INV) #自己指定阈值 THRESH_BINARY_INV大于阈值的都为0
#ret, binary = cv2.threshold(gray,80,255,cv2.THRESH_BINARY) #自己指定阈值 THRESH_BINARY
#局部阈值
#binary = cv2.adaptiveThreshold(gray,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,25,10) #局部阈值
binary = cv2.adaptiveThreshold(gray,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,25,10)
return binary
#print(data_dir) #skimage data路径
#str=data_dir+'/*.jpg'
str='I:/V2/*.jpg'
coll = io.ImageCollection(str,load_func=convert_gray)
for i in range(len(coll)):
io.imsave('I:/c2/'+np.str(i)+'.jpg',coll[i]) #循环保存图片
参考
图像批量处理https://blog.csdn.net/forever0_0love/article/details/80058738
图像二值化https://www.cnblogs.com/ssyfj/p/9272615.html
python 文件批量命名
import os
def read_directory(directory_name):
print(len(os.listdir(directory_name)))
for filename,i in zip(os.listdir(directory_name),range(0,len(os.listdir(directory_name)))):
os.rename(directory_name + "/" + filename,directory_name + "/" + 'left'+str(i)+'.tif')
read_directory("C:/Users/a1253/Desktop/pytorch/opencv/image/resource/imgleft/")#文件夹路径
python 批量创建文件夹
#批量创建文件夹
import os
def read_directory(directory_name):
print(len(os.listdir(directory_name)))
for filename,i in zip(os.listdir(directory_name),range(0,len(os.listdir(directory_name)))):
os.mkdir(directory_name + "/" + 'left'+str(i))
read_directory("C:/Users/a1253/Desktop/pytorch/opencv/image/resource/imgleft/")
python 批量处理多文件夹下文件命名
import os
dirs = []
def file_name(file_dir,dir): #获取文件夹下文件夹列表
for root, dirs, files in os.walk(file_dir):
dir = dirs
# print(root) #当前目录路径
# print(dirs) #当前路径下所有子目录
# print(files) #当前路径下所有非目录子文件
return dir
break
def rename_directory(directory_name,dir): #对各文件夹下文件重命名
k = directory_name
for i in dir:
directory_name = k + str(i) + "/"
for filename,j in zip(os.listdir(directory_name),range(0,len(os.listdir(directory_name)))):
os.rename(directory_name + "/" + filename, directory_name + "/" + str(i) + '_'+ str(j) + '.png')
dirs = file_name('C:/Users/a1253/Desktop/pytorch/opencv/image/resource/imgleft/', dirs)
rename_directory("C:/Users/a1253/Desktop/pytorch/opencv/image/resource/imgleft/", dirs)