当前位置: 首页 > news >正文

剖析材料范文哪个网站做的好做网站需要多少钱呢

剖析材料范文哪个网站做的好,做网站需要多少钱呢,东莞网站没计,专业模板建站提供商万用表数据导出变化曲线图——pycharm实现视频数据导出变化曲线图 一、效果展示二、环境配置三、代码构思四、代码展示五、代码、python环境包链接 一、效果展示 图1.1 效果展示 #xff08;左图#xff1a;万用表视频截图#xff1b;右图#xff1a;表中数据变化曲线图左图万用表视频截图右图表中数据变化曲线图 二、环境配置 软件PyCharm 2021.1.3 (Professional Edition) python环境包放在文章结尾文件链接其中 .yaml 文件 三、代码构思 Created with Raphaël 2.3.0 Start 预备工作拍摄一段万用表视频 预备工作裁剪视频、读取视频每秒帧数 代码1将视频按帧数截屏至某文件夹下 代码2ocr 截屏文件夹下所有文件 代码3正则表达式筛选截图中数字数据并修正数据 代码4绘图 End 四、代码展示 # functions.py import cv2 import os import glob# video to img def extract_frames(video_path, output_folder, interval):cap cv2.VideoCapture(video_path)frame_count 0while cap.isOpened():ret, frame cap.read()if not ret:breakif frame_count % interval 0:output_path f{output_folder}/frame_{interval}_{frame_count // interval}.jpgcv2.imwrite(output_path, frame)frame_count 1cap.release()# 计数文件夹里的文件个数 def count_files_in_directory(directory):return len([f for f in os.listdir(directory) if os.path.isfile(os.path.join(directory, f))])# 删除文件夹下的图片 def del_imgs(folder_path):# 定义要删除的图片文件夹路径# 获取文件夹中所有图片文件的路径image_files glob.glob(os.path.join(folder_path, *.jpg)) glob.glob(os.path.join(folder_path, *.png))# 遍历所有图片文件并删除for image_file in image_files:os.remove(image_file) # img_to_plot.py import numpy as np import matplotlib.pyplot as plt from matplotlib.pyplot import MultipleLocatordef wyb_plot(Real_time_value, Maximum, Average, Minimum, fps, title, x_scale2, y_scale0.500):x [i for i in range(len(Real_time_value))]plt.figure(dpi200)x_major_locator MultipleLocator(x_scale)# 把x轴的刻度间隔设置为2并存在变量里y_major_locator MultipleLocator(y_scale)# 把y轴的刻度间隔设置为0.0500并存在变量里ax plt.gca()# ax为两条坐标轴的实例ax.xaxis.set_major_locator(x_major_locator)# 把x轴的主刻度设置为1的倍数ax.yaxis.set_major_locator(y_major_locator)# 把y轴的主刻度设置为10的倍数# # 绘制柱状图# y Real_time_value# plt.bar(x, y)# 绘制曲线图plt.plot(x, Real_time_value, labelReal_time_value)plt.plot(x, Maximum, labelMaximum)plt.plot(x, Average, labelAverage)plt.plot(x, Minimum, labelMinimum)# 绘制曲线图并标出最大值和最小值max_y np.max(Real_time_value)min_y np.min(Real_time_value)max_index np.argmax(Real_time_value)min_index np.argmin(Real_time_value)plt.annotate((%s,%s) % (x[max_index], max_y), xy(x[max_index], max_y), xytext(x[max_index], max_y 0.5),textcoordsoffset points,colorred)plt.savefig(wyb_plot.png)plt.annotate((%s,%s) % (x[min_index], min_y), xy(x[min_index], min_y), xytext(x[min_index], min_y - 0.5),textcoordsoffset points,colorgreen)max_y np.max(Maximum)min_y np.min(Maximum)max_index np.argmax(Maximum)min_index np.argmin(Maximum)plt.annotate((%s,%s) % (x[max_index], max_y), xy(x[max_index], max_y), xytext(x[max_index], max_y 0.5),textcoordsoffset points,colorred)plt.savefig(wyb_plot.png)plt.annotate((%s,%s) % (x[min_index], min_y), xy(x[min_index], min_y), xytext(x[min_index], min_y - 0.5),textcoordsoffset points,colorgreen)max_y np.max(Average)min_y np.min(Average)max_index np.argmax(Average)min_index np.argmin(Average)plt.annotate((%s,%s) % (x[max_index], max_y), xy(x[max_index], max_y), xytext(x[max_index], max_y 0.5),textcoordsoffset points,colorred)plt.savefig(wyb_plot.png)plt.annotate((%s,%s) % (x[min_index], min_y), xy(x[min_index], min_y), xytext(x[min_index], min_y - 0.5),textcoordsoffset points,colorgreen)max_y np.max(Minimum)min_y np.min(Minimum)max_index np.argmax(Average)min_index np.argmin(Average)plt.annotate((%s,%s) % (x[max_index], max_y), xy(x[max_index], max_y), xytext(x[max_index], max_y 0.5),textcoordsoffset points,colorred)plt.savefig(wyb_plot.png)plt.annotate((%s,%s) % (x[min_index], min_y), xy(x[min_index], min_y), xytext(x[min_index], min_y - 0.5),textcoordsoffset points,colorgreen)plt.xlabel(x/str(fps)fps)plt.ylabel(y/A)plt.title(title)plt.legend()plt.savefig(wyb_plot.png)# plt.show() # main.py import functions import numpy as np import ocr_imgs import img_to_plot# 用户告知/ Users informed! print(Welcome to use wyb_project!) print(Please place the video under the video folder)# 逻辑判断 / logical judgment video_path_lj int(input(Whether to set the video_path( default video_path ./video/wybdata.mp4)(1/0): )) interval_lj int(input(Whether to set the interval( default screenshot / fps 30)(1/0): ))video_path ./video/wybdata.mp4 output_folder ./img # 输入 video name / Enter your video name if video_path_lj:vi_name input(Enter a video name(mind add suffix) )video_path ./video/ vi_name# screenshot/fps interval 30 # 默认每隔30帧截取一张图片 if interval_lj:interval int(input(screenshot / fps: ))# screenshot extract_frames functions.extract_frames extract_frames(video_path, output_folder, interval)# 计数文件夹里的文件个数 directory output_folder count_files_in_directory functions.count_files_in_directory file_count count_files_in_directory(directory) - 1# 定义要遍历的文件夹路径 folder_path output_folder # 每帧计数 frame_count 0 # 数据数组 data_str [] # 丢失数组 data_lost []# ocr imgs ocr_imgs ocr_imgs.ocr_imgs(file_count, folder_path, interval, data_str, data_lost)data_float [float(x) for x in data_str]# 绘图 # 定义万用表绘制的数据列表 Real_time_value [] Maximum [] Average [] Minimum []for i in range(len(data_float)):if i % 4 0:Real_time_value.append(data_float[i])Maximum.append(data_float[i 1])Average.append(data_float[i 2])Minimum.append(data_float[i 3])fps interval # 30 Real_time_value np.array(Real_time_value) Maximum np.array(Maximum) Average np.array(Average) Minimum np.array(Minimum)x_y_lj int(input(Whether to set x and y axis scale( default x_scale2, y_scale0.500)(1/0): )) if x_y_lj:x_scale float(input(input x axis scale: ))y_scale float(input(input y axis scale: ))title_lj int(input(Whether to set the title of plot ( default \wyb_plot\)(1/0): )) if title_lj:title input(enter a title for plot: )title wyb_plot wyb_plot img_to_plot.wyb_plot(Real_time_value, Maximum, Average, Minimum, fps, title, x_scale2, y_scale0.500)img_del_lj int(input(Whether to delete imgs of imgs folder( default delete)(1/0): )) if img_del_lj:folder_path output_folderdel_imgs functions.del_imgs(folder_path) # ocr_imgs.py from cnocr import CnOcr import redef ocr_imgs(file_count, folder_path, interval, data_str, data_lost):# 遍历文件夹文件(图片)进行文字识别for frame_count in range(file_count):img_fp f{folder_path}/frame_{interval}_{frame_count}.jpgocr CnOcr() # 所有参数都使用默认值out_list ocr.ocr(img_fp)data_list []for dict in out_list:text dict.get(text)match re.search(r[0-9Oo][.,][0-9Oo][0-9Oo][0-9Oo][0-9Oo]|[Q][0-9Oo][0-9Oo][0-9Oo][0-9Oo], text) # 正则化匹配if match:result match.group()# print(result)# with open(output.txt, a) as f:# print(result, filef)result result.replace(O, 0).replace(o, 0).replace(,, .) # 修正数据data_list.append(result)# with open(output.txt, a) as f:# print(result, filef)if len(data_list) % 4 0:data_str data_listelse:print(数据丢失, frame_ str(interval) _ str(frame_count) .jpg 未采集)data_lost.append(frame_count)# 手动采集图片数据 / manual captureman_cap int(input(Whether manual collection(1/0): ))if man_cap:for frame in data_lost:data_ins 0for i in range(4):if i 0:data_ins (input(rea: ))if i 1:data_ins (input(max: ))if i 2:data_ins (input(ave: ))if i 3:data_ins (input(min: ))data_str.insert((file_count - len(data_list) 1) * 4 i, data_ins) 五、代码、python环境包链接 wyb_project https://www.alipan.com/s/dKwQhvHpb4Z 提取码: 6mm1 点击链接保存或者复制本段内容打开「阿里云盘」APP 无需下载极速在线查看视频原画倍速播放。
http://www.pierceye.com/news/921584/

相关文章:

  • 临沂做商城网站设计网站设计 线框图 怎么画
  • 台江网站建设建设网站的意义
  • 西安做网站公司报价沧州
  • 有了网站 怎么做排名优化企业黄页官网
  • 临夏州建设银行网站深圳官网
  • 手机互动网站建设昆山网络公司哪家比较好
  • 桐城网站建设推荐做网站的公司
  • 中国 网站服务器 租金手机免费网址
  • php网站如何做多语言网站域名有效期
  • 企业网站开发周期公司建设网站的作用
  • 惠普电脑网站建设策划方案蒙自做网站的公司
  • 柳州企业 商家应该如何做网站网站忧化 优帮云
  • 网站开发生命周期网站推广实施计划
  • 传媒公司注册经营范围有哪些北京百度seo排名点击器
  • 什么是cms网站系统做响应式网站怎么设计
  • wordpress多城市子站在线培训网站
  • 企业网站服务门户网站搬家怎么做
  • 免费浏览外国网站的软件防止访问网站文件夹
  • 长沙县政务网站公司介绍怎么写范本
  • 免费网站建设方案优化seo整体优化
  • 境外公司在国内建网站微信小程序登录平台
  • 手机网站页面模板企业网站建设相关书籍在线阅读
  • 服装网站建设内容asp网站服务建设论文
  • 开封 网站建设 网络推广如何用xshell安装wordpress
  • 河北建设工程信息网站银行外包不是人干的
  • 郑州免费做网站的襄阳品牌网站建设
  • 爱网站站长工具android软件开发下载
  • 网站被入侵宁波妇科医生推荐
  • 移动网站建设学习新能源汽车价格表2021
  • 如何做视频会员网站工商注册公司需要提供的资料