首页 > 其他分享 >绘制点数据

绘制点数据

时间:2023-03-17 20:33:20浏览次数:27  
标签:scale img color 绘制 list int cv2 数据

绘制点数据

import os
import matplotlib.pyplot as plt
import cv2

import math


def loadTxtData(uwb_data_file):
    list_x = []
    list_y = []

    #txtFile = open("2.txt",'rb')

    with open(uwb_data_file,'r') as fileObj:
        linesStr = fileObj.readlines()
        #1    9    3197    4587    2593    77    4    0    2022-03-07 10:38:56    1
        #print(lineStr)

        for lineStr in linesStr:
            line_strs = lineStr.split("\t")
            #if len(line_str)==11:
            list_x.append(float(line_strs[2]))
            list_y.append(float(line_strs[3]))

        #print(line[2],line[3])
        
        #list_x.append(line[2])
        #list_y.append(line[3])

    return list_x,list_y



def drawPoint(img,list_x,list_y,scale_x,scale_y,n_w,n_h,o_x,o_y,color_param):
    for k in range(2,len(list_x)-2):
        indexX0 = int(list_x[k-1]/scale_x)
        indexY0 = int(list_y[k-1]/scale_y)

        
        indexX1 = int(list_x[k]/scale_x)
        indexY1 = int(list_y[k]/scale_y)
        
        indexX2 = int(list_x[k+1]/scale_x)
        indexY2 = int(list_y[k+1]/scale_y)

        
        dis01 = math.sqrt((indexX0-indexX1)*(indexX0-indexX1) + (indexY0-indexY1)*(indexY0-indexY1))
        dis12 = math.sqrt((indexX1-indexX2)*(indexX1-indexX2) + (indexY1-indexY2)*(indexY1-indexY2))

        if dis01>100 or dis12>100:
            continue

        

        

        if indexX1==0 and indexY1==0:
            continue
        indexX = indexX1 - o_x
        indexY = o_y + indexY1*(-1) + 500
        #circleIn = cv2.circle(img,center = (width // 2, height // 2) , radius = int(min(height, width) / 3) , color = 0, thickness = -1)
        cv2.circle(img,center=(indexX,indexY),radius=6,color=color_param,thickness=6)

        img2 = cv2.resize(img,(n_w,n_h))
        cv2.imshow("win",img2)
        cv2.waitKey(20)

def drawUWB():
    list_x,list_y = loadTxtData(uwb_data_file="10.txt")

    list_x1,list_y1 = loadTxtData(uwb_data_file="1.txt")

    print(list_y)
    #plt.plot(list_x,list_y)
    #plt.scatter(list_x,list_y,color = 'red')
    #plt.show()

    scale_x = 25.00
    scale_y = 25.00
    start_x = 373
    start_y = 1490

    o_x = 370
    o_y =1500

    img = cv2.imread("1.jpg")
    if img.shape[0]>0:
        width = img.shape[1]
        height = img.shape[0]

        n_w = int(width/3)
        n_h = int(height/3)
        
        cv2.circle(img,center=(o_x,o_y),radius=10,color=(0,255,0),thickness=10)
        
        #cv2.circle(img,)
        color_param = (0,0,255)
        drawPoint(img,list_x,list_y,scale_x,scale_y,n_w,n_h,o_x,o_y,color_param)
        
        color_param1 = (255,0,0)
        drawPoint(img,list_x1,list_y1,scale_x,scale_y,n_w,n_h,o_x,o_y,color_param1)

        #
        cv2.imwrite("1_out.jpg",img)
        
        
        

    cv2.waitKey(0)

drawUWB()

 

 

 

##################

标签:scale,img,color,绘制,list,int,cv2,数据
From: https://www.cnblogs.com/herd/p/17228059.html

相关文章

  • 跟艾文学编程《零基础数据学Python》(02)pyecharts数据可视化
    作者:艾文,计算机硕士学位,企业内训讲师和金牌面试官,公司资深算法专家,现就职BAT一线大厂。 内容:跟艾文学编程《零基础数据学Python》学习内容学习pyecharts,我们可以通过......
  • 大数据三重门
    这篇文章对大数据未来的发展趋势做了一个推演,如能对大家有所启发更好,否则权当做一篇碎片化时代产生的快速消费品一看而过即可。大数据第一重这是大数据的第一阶段,也是大数据......
  • 计算机网络与通信之数据链路控制
    今天的内容主要讲的是如何保证广域网中计算机的通信的可靠性:数据链路层概述点对点协议:PPP点对多点协议:CSMA/CD差错控制技术1.数据链路层概述链路层中的信道数据链路层使......
  • Azure DevOps Server 数据还原方式二:异地还原
    1.概述在前面的博客《AzureDevOpsServer数据备份》、《AzureDevOpsServer数据还原方式一:本地还原》中,我们详细介绍了如何在服务器中配置数据备份和本地还原。下面我......
  • Azure DevOps Server 数据还原方式一:本地还原
    1.概述在前面的博客《AzureDevOpsServer数据备份》中,我们详细介绍了如何在服务器中配置数据备份,通过增量和全量备份的方式确保系统数据的安全性。下面我们主要来介绍如......
  • Android中怎样使用createTempFile实现将字节数据创建到临时文件并转换成FileOutputStr
    场景在接收到音频文件的字节数组之后,需要将其临时存储在手机的某个路径下并将其转换为FileOutpurStream和FileInputStream提供给MediaPlayer进行播放。如果指定音频文件的存......
  • Openlayers中设置定时绘制和清理直线图层
    场景Openlayers中实现地图上添加一条红色直线:在上面实现绘制一条红色直线的基础上,怎样对该红线进行清除。在某些条件下进行绘制和清除直线,下面通过定时器来反复实现绘制和清......
  • tensorflow yolov3训练自己的数据集,详细教程
    这个教程是我在自己学习的过程中写的,当作一个笔记,写的比较详细在github上下载yolov3的tensorflow1.0版本:​​​https://github.com/YunYang1994/tensorflow-yolov3​​​......
  • 添加了外键moddle,查询时获取外键的 数据信息
    遍历嵌套序列化设置depth=1表示遍历序列化深度为1,应该设置一个整数n,表示遍历到第n层,不设置遍历只显示外键ID,设置了会显示外键的详细信息classStudentSerializer(seria......
  • EMQX+HStreamDB 实现物联网流数据高效持久化
    在IoT场景中,通常面临设备数量庞大、数据产生速率高、累积数据量巨大等挑战。因此,如何接入、存储和处理这些海量设备数据就成为了一个关键的问题。EMQX作为一款强大的​​......