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)