import os, glob, cv2, xlwt, re, shutil
import numpy as np
#用于检测的黑核尺寸,降低可提高灵敏度
Black_size = 15
#RGB path
path = '../RGB256/'
#生成的表格文件
excel_name = './BreakRGBimg.xls'
def isBreak(img_test):
kernal_black = np.zeros((Black_size, Black_size))
img_test = np.sum(img_test,axis = 2)
img_size = img_test.shape[0]
for img_i in range(0, img_size-Black_size, Black_size):
for img_j in range(0, img_size - Black_size, Black_size):
kernal_black = img_test[img_i:img_i+Black_size,img_j:img_j+Black_size]
if np.sum(kernal_black) == 0:
return False
return True
if __name__=='__main__':
# 读取RGB图片
path_rgb = path
path_rgb_glob = os.path.join(path_rgb, '*tif')
path_rgb_list = []
path_rgb_list.extend(glob.glob(path_rgb_glob))
#写入Excel文件
rgb_list = xlwt.Workbook(encoding='utf-8')
sheet_rgb = rgb_list.add_sheet('Break RGB')
sheet_rgb.write(0, 0, 'rgb')
break_index = 0
for img_rgb in path_rgb_list:
img_rgb_temp = cv2.imread(img_rgb, -1)
if(not(isBreak(img_rgb_temp))):
break_index += 1
#RGB
sheet_rgb.write(break_index, 0, img_rgb)
rgb_list.save(excel_name)
检测RGB图像是否存在纯黑阴影(Python)
最新推荐文章于 2024-07-30 17:23:09 发布