建模程序 多个定时程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

85 lines
3.1 KiB

#!/usr/bin/python
import os, sys, time, cv2
import numpy as np
import matplotlib.pyplot as plt
import config
#查找并画出图片灰色直方图
def find_gray(img):
#灰度化
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = gray[2800:, :]
#计算直方图
hist = cv2.calcHist([gray], [0], None, [256], [0, 256])
#画出直方图
plt.plot(hist)
#查找颜色区域比例
def find_color_area(img, lower_color, upper_color):
color = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
color = color[2800:, :]
mask = cv2.inRange(color, lower_color, upper_color)
area = cv2.countNonZero(mask)
return round(area / (color.shape[0] * color.shape[1]), 4)
if __name__ == '__main__':
if len(sys.argv) == 3:
path = sys.argv[1]
psid = sys.argv[2]
else:
print('Usage: python findgray.py path psid')
exit(1)
path = os.path.abspath(path)
ps_lights = config.ps_lights[psid]
gcount, tcount = 0, 0
filelist = os.listdir(path)
filelist.sort()
for file in filelist:
if file != '111125_8.jpg':
img = cv2.imread(os.path.join(path, file))
gray_area = find_color_area(img.copy(), ps_lights['lower_gray'], ps_lights['upper_gray'])
white_area = find_color_area(img.copy(), ps_lights['lower_white'], ps_lights['upper_white'])
if white_area < gray_area or gray_area > ps_lights['gray_threshold']:
print(' warning file:', file, 'gray_area:', gray_area, 'white_area:', white_area)
else:
print('file:', file, 'gray_area:', gray_area, 'white_area:', white_area)
tcount += 1
find_gray(img)
plt.title(path)
plt.show()
exit(0)
print('start line--------------------------------------------------------------------------------')
for file in filelist:
if not file.endswith('.jpg'): continue
try:
img = cv2.imread(path + '/' + file)
gray_area = find_color_area(img, config.lower_gray, config.upper_gray)
white_area = find_color_area(img, config.lower_white, config.upper_white)
if file.endswith('_1.jpg'):
if gray_area > config.gray_threshold:
print('file:', file, 'gray_area:', gray_area, 'white_area:', white_area)
gcount += 1
else:
print('warning file:', file, 'gray_area:', gray_area, 'white_area:', white_area)
if file.endswith('_8.jpg'):
if white_area > config.white_threshold:
print('file:', file, 'gray_area:', gray_area, 'white_area:', white_area)
tcount += 1
else:
print('warning file:', file, 'gray_area:', gray_area, 'white_area:', white_area)
except Exception as e:
print(e)
continue
print('end line--------------------------------------------------------------------------------')
print('优质建模组照片:', gcount, '/108 ', ' 可用贴图组照片:', tcount, '/108')