求激光在表尺上的重心刻度

编程入门 行业动态 更新时间:2024-10-26 02:32:39

求激光在<a href=https://www.elefans.com/category/jswz/34/1004855.html style=表尺上的重心刻度"/>

求激光在表尺上的重心刻度

求激光在表尺上的重心刻度

  • 一、问题描述
  • 二、求解步骤和代码展示
    • 1.将视频每20帧抽取一张图片
    • 2.将每张图片灰度化并且垂直投影为二值化图片
  • 总结


一、问题描述

求解激光的实时位移偏移情况,通过表尺来确定精准坐标。

二、求解步骤和代码展示

1.将视频每20帧抽取一张图片

代码如下(示例):

'''''main文件用于将视频每%帧取一张照片'''''import cv2
import logging# 打印日志
logging.basicConfig(level=logging.INFO,format='%(asctime)s - %(levelname)s: %(message)s')#设定图片存放位置以及其编号num
def save_image(num, image):image_path = './picture/{}.jpg'.format(str(num))cv2.imwrite(image_path, image)file_path = './1.MP4'vc = cv2.VideoCapture(file_path)# 确认videocapture是否捕捉到视频
if vc.isOpened():ret, frame = vc.read()
else:ret = Falsecount = 0  # 多少张照片
frame_interval = 20  # 多少帧抽取一张照片
frame_interval_count = 0while ret:ret, frame = vc.read()# store operation every time f frameif frame_interval_count % frame_interval == 0:save_image(count, frame)logging.info("num:" + str(count) + ", frame: " +str(frame_interval_count))count += 1frame_interval_count += 1cv2.waitKey(1)vc.release()

2.将每张图片灰度化并且垂直投影为二值化图片

z由于我要处理的数据是单一颜色图片的数据,所以我将图片先处理为灰度图,这样激光的绿色就可以成为区分点,且为白色,这样方便后去进行处理,可以很方便得到坐标并且将其垂直投影到X轴,通过一个像素点就加权255,这样就可以后续通过平均权重求出重心坐标了。
代码如下(示例):

import os, sys
import cv2
import matplotlib.pyplot as plt
# 打开文件
path = "./picture"
dirs = os.listdir(path)# 输出所有文件和文件夹
for file in dirs:image_path = './picture/{}'.format(file)#print(file)image = cv2.imread(image_path)gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# ret, img = cv2.threshold(gray, 160, 255, cv2.THRESH_BINARY)ret, img = cv2.threshold(gray, 150, 255, cv2.THRESH_BINARY)

对图片转化完就开始处理图像数据了

   # 垂直投影二值化图片def vProject(binary):h, w = binary.shape# 创建 w 长度都为0的数组w_w = [0] * wsum1 = [0] * wrate = 0sum = 0sumw = 0#计算权重求出平均坐标for i in range(w):for j in range(h):if binary[j, i] == 255:w_w[i] += 255if w_w[i] != 0:sum1[i] += w_w[i] * isum += w_w[i]#rate为输出for i in range(w):sumw += sum1[i]rate = sumw / sumprint(rate)#plt.plot(range(w), w_w)#plt.show()# return w_wvProject(img)

处理的各个阶段图片:

总结

了解图片处理的基本操作,学习了对视频的去帧,对图片转换,将图片处理后的数据进行处理。总的来说是一次很好的锻炼
代码百度云链接:
链接:
提取码:s22p

更多推荐

求激光在表尺上的重心刻度

本文发布于:2024-02-17 07:30:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1693191.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:表尺   刻度   重心   激光

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!