| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 |
- # -*- coding:utf-8 -*-
- import os
- import django
- import sys
- from qcloudsms_py import SmsSingleSender
- from qcloudsms_py.httpclient import HTTPError
- from qcloudsms_py import SmsMultiSender
- BASE_DIR = os.path.dirname(os.path.abspath(__file__)) # 定位到你的django根目录
- sys.path.append(os.path.abspath(os.path.join(BASE_DIR, os.pardir)))
- os.environ.setdefault("DJANGO_SETTINGS_MODULE",
- "yfwlw_pro.settings") # project_name 项目名称
- django.setup()
- import json
- from apps.AppInfoManage.models import Equip, Equip_type, MyUser, CBDphoto, CBDstatus, QXZdata, SCDstatus, CBDstatus, Equip_SimInfo, CBDdata, BZYphoto, RecentCBDdata,RecentSCDdata,\
- Msg_Conf, Msg_Send, JKphoto, JKdata, JKtoken
- import re
- import datetime
- import time
- import random
- from apps.SimInfo.views import get_siminfo
- from apps.ReportManage.all_dict import insect_dict_new, transpont_equip_scd
- # from apps.ReportManage.tasks import test
- import shutil
- import requests
- import math
- from PIL import Image
- import argparse
- import cv2
- from imutils import paths
- def mkdir(path):
-
- # 去除首位空格
- path=path.strip()
- # 去除尾部 \ 符号
- path=path.rstrip("\\")
-
- # 判断路径是否存在
- # 存在 True
- # 不存在 False
- isExists=os.path.exists(path)
-
- # 判断结果
- if not isExists:
- # 如果不存在则创建目录
- # 创建目录操作函数
- os.makedirs(path)
- print(path+' 创建成功')
- return True
- else:
- # 如果目录存在则不创建,并提示目录已存在
- print(path+' 目录已存在')
- return False
- def variance_of_laplacian(image):
- # 拉普拉斯的方差
- return cv2.Laplacian(image, cv2.CV_64F).var()
- def test(imei):
- time.sleep(20)
- nowtime = datetime.datetime.now().strftime('%Y%m%d')
- origin = sys.stdout
- f = open('../logs/'+"bzyphoto" + nowtime +'.txt','a')
- sys.stdout = f
- print('=================================================')
- print("<-----imei:\n" + imei + ';\n')
- print("Message:\n" + "http:bzyphoto" + "----->\n")
- print("%s"%datetime.datetime.now())
- print('=================================================')
-
- pic_name = datetime.datetime.now().strftime('%Y%m')
-
- try:
- args = "../pyftp/ftp_file/bzy_test/" + imei
- cv_num_list = []
- file_list1 = list(paths.list_images(args))
- print("\n===========================")
- print("file_list1:",file_list1)
- print("type file_list1:",type(file_list1))
- cv_num_list1 = []
- for imagePath1 in file_list1[::]:
- # fm = get_value(imagePath)
- # 孢子仪图片过小删除
- if os.path.getsize(imagePath1) <= 10:
- file_list1.remove(imagePath1)
- img1 = cv2.imread(imagePath1)
- img1 = cv2.resize(img1, (800, 600))
- gray = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
- # 创建SIFT对象
- sift = cv2.xfeatures2d.SIFT_create()
- keypoints, descriptor = sift.detectAndCompute(gray, None)
- img1 = cv2.drawKeypoints(image=img1, outImage=img1, keypoints=keypoints,flags=cv2.DRAW_MATCHES_FLAGS_DEFAULT, color=(0, 0, 255))
- fm1 = len(keypoints)
- cv_num_list1.append(fm1)
- # 打印清晰度值:
- # print("fm1",fm1)
- # # 打印文件路径
- # print("imagePath1",imagePath1)
- file_cv_tuple1 = tuple(zip(cv_num_list1,file_list1))
- print("file_cv_tuple1:\n",file_cv_tuple1)
- print("=========================================/n")
- file_cv_tuple_list1 = list(file_cv_tuple1)
- print("file_cv_tuple_list1:\n",file_cv_tuple_list1)
- print("*****************************************/n")
- # 按照清晰度排序:, reverse=True降序
- result1 = sorted(file_cv_tuple_list1, key=lambda s: s[0],reverse=True)
- print("result1:\n",result1)
- # 切片取清晰度最高的前五张图片:
- result1_5 = result1[0:3]
- # result5 = result[0:1]
- print("result1_5:\n",result1_5)
- pic_name = datetime.datetime.now().strftime('%Y%m')
- # 定义要创建的目录:
- mkpath="../pyftp/ftp_file/bzy_photo/" + imei + "/" + pic_name
- # 调用函数,创建目录:
- mkdir(mkpath)
- for i in result1_5:
- # for i in result5:
- #i值:(137.06453470539032, 'images\\192.168.2.64_01_20190802095315882_ALARM_INPUT.jpg')
- print("file path:",i[1])
- #复制文件:
- shutil.copy(i[1],mkpath)
- # os.system("rm ./pyftp/ftp_file/bzy_test/%s/*.jpg -rf"%imei)
-
- os.system("mv ../pyftp/ftp_file/bzy_test/%s ../pyftp/ftp_file/bzy_test/%s_%s"%(imei,imei,datetime.datetime.now().strftime("%Y%m%d%H%M%S")))
- print("-----------------image move success----------------------")
- except Exception as a:
- print('=================================================')
- print("<-----imei:\n" + imei + ';\n')
- print("Message:\n" + "http:bzyphoto" + "----->\n")
- print("%s"%datetime.datetime.now())
- print("==========%s========"%a)
- print("-----------------image move default----------------------")
- try:
- equip = Equip.objects.get(equip_id=imei)
- file_dir="../pyftp/ftp_file/bzy_photo/" + imei + "/" + pic_name
- for root, dirs, files in os.walk(file_dir):
- print("当前目录为=========>>",root) #当前目录路径
- print("当前子目录为=========>>",dirs) #当前路径下所有子目录
- print("当前目录文件为=========>>",files) #当前路径下所有非目录子文件
- for i in files:
- photo_addr = file_dir + "/" + i
- photo_addr = photo_addr.replace("../","")
- print("文件夹图片路径===========》》",photo_addr)
- if BZYphoto.objects.filter(addr=photo_addr).exists():
- print("照片存在")
- else:
- bzys = BZYphoto.objects.create(equip_id=equip, addr=photo_addr)
- print("照片不存在")
- if equip.ftp_addr:
- bzy_imgs = "http://www.yfzhwlw.com/bzy/" + bzys.addr
- data = {
- "Image":bzy_imgs,
- "imei":bzys.equip_id.equip_id,
- }
- data = json.dumps(data)
- headers = {"Content-Type": "application/json; charset=UTF-8", 'Connection': 'close'}
- bzy_photo = requests.post(equip.ftp_addr,data=data,headers=headers,timeout=3)
- print("转发成功")
- except Exception as e:
- print("错误信息为",e)
- print("-----图片入库失败")
-
- sys.stdout = origin
- f.close()
- return
- data = {}
- while True:
- nowtime = datetime.datetime.now().strftime('%Y%m%d')
- # origin = sys.stdout
- # f = open("bzyphoto_new" + nowtime +'.txt','a')
- # sys.stdout = f
- # print('=================================================')
- # print("Message:\n" + "http:bzyphoto" + "----->\n")
- print("%s"%datetime.datetime.now())
-
- path = "/data/yfwlw/pyftp/ftp_file/bzy_test"
- # path = "/home/web/yfwlw/pyftp/ftp_file/bzy_test"
- dirs = os.walk(path)
- for root,dir1,files in dirs:
- for d in dir1:
- if '_' in d:
- continue
- print("continue",d)
- sum1 = 0
- file_name = os.path.join(path,d)
- for root2, dir2, files2 in os.walk(file_name):
- n = len(dir2)+len(files2)
- sum1 = sum1 + n
- try:
- if sum1:
- print(sum1,"综合")
- if data[file_name] == sum1:
- imei = file_name.split("/")[-1]
- print("file_name",file_name.split("/")[-1])
- print("<-----imei:\n" + imei + ';\n')
- r = test(imei)
- # os.rename(file_name, file_name + '_' + str(int(time.time())))
- print("该次图片上传完毕,请进行筛选操作")
- except Exception as e:
- print("错误信息为",e)
- data[file_name] = sum1
- break
- print("等待60s,再次巡查")
- # sys.stdout = origin
- # f.close()
- time.sleep(60)
-
|