当前位置: 首页 > 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/101347/

相关文章:

  • 做问卷网站义乌网站建设推广专家
  • 不会编程怎样建设网站昆明做网站哪家
  • 直播网站模板新营销平台电商网站
  • 建设部指定招标网站免费的企业查询软件
  • 做前端常用的网站及软件下载平台优化是什么意思
  • 企石镇仿做网站wordpress 网站白屏
  • 班级网站建设规划书专业定制网红变色杯
  • 上海网站设计公司电话甘肃路桥建设集团有限公司官方网站
  • 哈尔滨网站建设网站开发陕西省建设监理工程协会网站
  • 微信公众号电商网站开发wordpress增加论坛
  • 网站建设视频百度网盘下载免费wordpress搭建
  • 哈尔滨市网站建设公司汕头市公司网站建设平台
  • 东莞网站建设方案外包甘肃两学一做网站
  • 网站建设优化排名推广平面设计职业学校
  • 网后台的网站怎么做网站代理商
  • 网站如何转移到新的空间服务器上手机无人区离线地图app
  • 网站建设模板的买域名做网站的坏处
  • 长春做网站qianceyun做景观素材有哪几个网站
  • 自己建的网站也要注册域名吗邯郸市做网站
  • 天津网站建设制作软件潍坊个人做网站
  • 重庆城市建设集团官方网站php用什么做网站服务器
  • 深圳坪山站重庆市园林建设有限公司网站
  • 网站建设图片教程如何用自己的电脑建网站
  • 《网页设计与网站建设》A卷答案广东新闻联播
  • 海南专业网站运营托管wordpress 去掉主题
  • 企业品牌网站制作甜品制作网站
  • 手机网站怎么制作影响力网站建设
  • 猪八戒网站做私活赚钱吗一尊网 又一个wordpress站点
  • 上海市做网站的公司滨州哪里做网站
  • 简单的网站建设步骤wordpress 贴吧主题