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

网站建设上海哪家公司好网页历史记录在哪里

网站建设上海哪家公司好,网页历史记录在哪里,海淀网站建设怎么样,代写文案的软件视频标注 用于从视频中标注数据#xff0c;用于YOLO网络的目标检测。旨在实现单次鼠标标注能生成多张被标注图像#xff0c;实现数据集快速制作#xff01; 从视频中#xff0c;通过鼠标框选指定区域#xff0c;形成掩码box鼠标选定区域后#xff0c;根据设定的成像尺寸…视频标注 用于从视频中标注数据用于YOLO网络的目标检测。旨在实现单次鼠标标注能生成多张被标注图像实现数据集快速制作 从视频中通过鼠标框选指定区域形成掩码box鼠标选定区域后根据设定的成像尺寸在选定区域周围随机实施多个角度的剪切制作数据集。重在减少鼠标标注操作丰富数据集图片数量剪切出的图片每张都带掩码box、原图和效果图。标注过程视频可暂停生成图像文件自动命名。鼠标单击过后或者键盘按键都可控制视频暂停和继续不足之处不可控制视频帧移动 程序文件https://download.csdn.net/download/tjb132/88514408?spm1001.2014.3001.5503 import threading import queueclass Mask_video:def __init__(self, urls, label, images_save_path):self.urls urlsself.video_idx 0self.lock threading.Lock()self.drawing Falseself.start_point (-1, -1)self.end_point (-1, -1)self.cropped_image Noneself.paused False # 是否暂停视频播放self.expanded_cropped_image Noneself.expanded_cropped_image_mask_pts [0,0,0,0]self.images_save_root images_save_pathself.images_data_save_path os.path.join(self.images_save_root, images)self.images_label_save_path os.path.join(self.images_save_root, labels)self.images_label_mask_path os.path.join(self.images_save_root, mask)os.makedirs(self.images_data_save_path, exist_okTrue)os.makedirs(self.images_label_save_path, exist_okTrue)os.makedirs(self.images_label_mask_path, exist_okTrue)self.images_idx 0self.label label# 创建一个窗口并设置鼠标事件回调函数cv.namedWindow(Video)cv.setMouseCallback(Video, self.draw_rectangle)passdef draw_rectangle(self, event, x, y, flags, param):if event cv.EVENT_LBUTTONDOWN:with self.lock:self.drawing Trueself.start_point (x, y)self.pause_video()elif event cv.EVENT_MOUSEMOVE:if self.drawing:with self.lock:self.end_point (x, y)if event cv.EVENT_LBUTTONUP:with self.lock:self.drawing Falseself.end_point (x, y)# print( 1 , self.start_point, self.end_point)# 归一化坐标确保 start_point 包含左上角坐标end_point 包含右下角坐标start_point (min(self.start_point[0], self.end_point[0]), min(self.start_point[1], self.end_point[1]))end_point (max(self.start_point[0], self.end_point[0]), max(self.start_point[1], self.end_point[1]))self.start_point, self.end_point start_point, end_point# print( 2 , self.start_point, self.end_point)if (self.start_point[0]-self.end_point[0])0 or (self.start_point[1]-self.end_point[1])0:self.cropped_image Nonereturnelse:# 裁剪图像并显示self.cropped_image self.frame[self.start_point[1]:self.end_point[1],self.start_point[0]:self.end_point[0]]# cv.imshow(Cropped Image, self.cropped_image)for i in range(4): self.crop_and_random_expand()self.cropped_image Noneself.resume_video()def pause_video(self):with self.lock:self.paused Truedef resume_video(self):with self.lock:self.paused Falsedef crop_and_random_expand(self): 在指定区域的附近实施随机剪裁生成图像 # with self.lock:if self.cropped_image is not None:# 定义扩展的像素范围expand_range1 np.random.randint(0, self.start_point[0]) # 您可以根据需要调整这个值expanded_x1 max(self.start_point[0] - expand_range1, 0)expand_range2 np.random.randint(0, self.frame.shape[1]-self.end_point[0]) # 您可以根据需要调整这个值expanded_x2 min(self.end_point[0] expand_range2, self.frame.shape[1])expand_range3 np.random.randint(0, self.start_point[1]) # 您可以根据需要调整这个值expanded_y1 max(self.start_point[1] - expand_range3, 0)expand_range4 np.random.randint(0, self.frame.shape[0] - self.end_point[1]) # 您可以根据需要调整这个值expanded_y2 min(self.end_point[1] expand_range4, self.frame.shape[0])expanded_cropped_image self.frame[expanded_y1:expanded_y2, expanded_x1:expanded_x2]yh1, xw1 expanded_cropped_image.shape[:2]expanded_cropped_image cv.resize(expanded_cropped_image, (640, 640))yh2, xw2 expanded_cropped_image.shape[:2]self.expanded_cropped_image expanded_cropped_image.copy()new_pts [expand_range1, expand_range3, self.end_point[0]-self.start_point[0], self.end_point[1]-self.start_point[1]]new_pts [new_pts[0]*xw2/xw1, new_pts[1]*yh2/yh1, new_pts[2]*xw2/xw1, new_pts[3]*yh2/yh1]new_pts np.array(new_pts, dtypenp.int32)self.expanded_cropped_image_mask_pts new_ptscv.rectangle(expanded_cropped_image, (new_pts[0],new_pts[1]), (new_pts[0]new_pts[2], new_pts[1]new_pts[3]), (0, 255, 0), 2)cv.imshow(expanded_cropped_image, expanded_cropped_image)self.save_image(self.expanded_cropped_image, expanded_cropped_image)return expanded_cropped_imageelse:return Nonedef run_video_crop(self):while True:if not self.paused:ret, self.frame self.cap.read()if not ret:print(无法读取视频帧)breakimg self.frame.copy()if self.start_point ! (-1, -1) and self.end_point ! (-1, -1):# 在帧上绘制方框with self.lock:cv.rectangle(img, self.start_point, self.end_point, (0, 255, 0), 2)cv.imshow(Video, img)key cv.waitKey(20)if key 0xFF ord(q): # 退出剪裁软件breakelif key 0xFF ord(s): # 暂停视频self.pause_video()elif key 0xFF ord(d): # 继续播放视频self.resume_video()# cv.waitKey(20)self.cap.release()# cv.destroyAllWindows()def run(self):for i in range(len(self.urls)):url self.urls[i]self.video_idx itry:cap cv.VideoCapture(url)ret, frame cap.read()if ret:self.cap cap# breakself.lock threading.Lock()self.drawing Falseself.start_point (-1, -1)self.end_point (-1, -1)self.cropped_image Noneself.paused False # 是否暂停视频播放self.run_video_crop()except: passcv.destroyAllWindows()def save_image(self, imgdata, maskdata):self.images_idx 1imgfile os.path.join(self.images_data_save_path, f{str(self.video_idx)}_{self.images_idx}.jpg)labelfile os.path.join(self.images_label_save_path, f{str(self.video_idx)}_{self.images_idx}.txt)maskfile os.path.join(self.images_label_mask_path, f{str(self.video_idx)}_{self.images_idx}.jpg)print(\timages data jpg save in:, imgfile)cv.imwrite(imgfile, imgdata)print(\timages label txt save in:, labelfile)hy, wx imgdata.shape[:2]x,y,w,h self.expanded_cropped_image_mask_ptswith open(labelfile, w) as f:data f{str(self.label)}\t{x / wx}\t{y / hy}\t{w / wx}\t{h / hy} \nf.write(data)print(\timages mask save in:, maskfile)cv.imwrite(maskfile, maskdata)def run():print( start system )import pandas as pd# 读取Excel文件excel_file rI:\python\02-job\h03090 data-output\video.xlsx # 将文件名替换为实际的Excel文件名df pd.read_excel(ioexcel_file)# 提取某一行的数据例如第3行索引为2row_index 3selected_row df.iloc[row_index]# 打印提取的行数据print(提取的行数据:)print(selected_row)videos str(selected_row[topVideo]).split(,)print(videos)data {id: selected_row[goods_id], videos: videos}images_save_path rI:\python\02-job\h03090 data-output\new_images-labeledmask Mask_video(urlsvideos, labelrow_index, images_save_pathimages_save_path)mask.run()pass
http://www.w-s-a.com/news/997631/

相关文章:

  • 灞桥微网站建设株洲百姓网
  • 儿童网站建设互联网怎么学
  • 重庆建网站的公司集中在哪里中煤第五建设有限公司网站
  • 成都网站建设987net运维需要掌握哪些知识
  • 网站建设师个人简介怎么写WordPress头像美化插件
  • 网站优化知识销售管理系统c语言
  • 桂林市网站设计厦门自己建网站
  • 网站seo哪里做的好东莞做网站优化的公司
  • 休闲采摘园网站建设政务公开和网站建设工作的建议
  • 长沙网站建设哪个公司好PHP amp MySQL网站建设宝典
  • 代码编辑器做热点什么网站好湛江网站建设哪家好
  • php网站开发概念网站开发岗位职责任职责格
  • asp 网站源码 下载西安自适应网站建设
  • 白领兼职做网站贵阳网站设计哪家好
  • 热水器网站建设 中企动力企业网站开发需要多钱
  • 北京市建设工程信息网交易网站静态网页模板免费下载网站
  • 福田欧曼服务站网站前台设计
  • 网站做系统叫什么软件吗注册域名需要实名认证吗
  • jsp网站开发教学视频ui设计风格
  • 注册网站建设开发怎么自己做导航网站
  • 设计做网站品牌咖啡主题网页界面设计
  • 个人网站制作总体设计宿迁房价2023年最新房价
  • 服装网站建设进度及实施过程马鞍山网站设计制作
  • 郑州网站优化顾问济宁网站制作
  • 网站开发简单吗网站引导页分为三个板块设计风格
  • 湖南做网站 在线磐石网络百度一下百度搜索
  • 现在建网站多少钱推广营销费
  • 联想企业网站建设的思路西安网站建设阳建
  • 网站内容 内链网站建设电话销售工作总结
  • 系统网站开发知名的摄影网站有哪些