吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1118|回复: 3
收起左侧

[Python 转载] OpenCV简单的平面视觉定位坐标

[复制链接]
voxmax 发表于 2023-10-31 10:07
最近无聊玩游戏自己写了个脚本,顺便简单研究了一下opencv的视觉处理,简单的灰度图二值化和模板匹配。有点小问题,如果有干扰的话定位框会飘。
目前想到的办法是用yolov8的分割模型去学习地图边界分割,但是暂时还没去做标注和训练。
[Python] 纯文本查看 复制代码
import time
import cv2
import dxcam
import numpy as np

# 定义一个函数,用于显示帧数据
def main():
    last_center = (0, 0)
    cam = dxcam.create(output_idx=0, output_color="BGR")
    cam.start(region=(1625, 36, 1894, 267), target_fps=60, video_mode=True)
    while True:
        #读取big2图片
        big = cv2.imread('big2.jpg',0)
        big2 = big.copy()
        #
        #读取cam.get_latest_frame()获得的帧数据,并numpy化
        img = np.array(cam.get_latest_frame())
        #获得灰度图
        gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
        #将灰度图二值化
        threshold_value, template = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)   
        
        #获得模版的宽高
        w, h = template.shape[::-1]
        #执行模版匹配,使用cv.TM_SQDIFF方法
        res = cv2.matchTemplate(big2,template,cv2.TM_SQDIFF)
        #获得匹配结果中的最小值、最大值、最小值坐标、最大值坐标
        min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
        #获得最小值坐标
        top_left = min_loc
        #获得最小值的右下角坐标
        bottom_right = (top_left[0] + w, top_left[1] + h)
        #获得矩形框中心点坐标
        center = (top_left[0] + w/2, top_left[1] + h/2)
        #随着移动,打印矩形框中心点坐标,如果中心坐标未改变数值,则不打印
        if center != last_center:
            print(center)
            last_center = center
        

        #在原图上画矩形
        cv2.rectangle(big,top_left, bottom_right, 255, 2)
        #调整窗口大小
        cv2.namedWindow('image', cv2.WINDOW_NORMAL)
        #调整窗口大小
        cv2.resizeWindow('image', 480, 584)
        #显示图像
        cv2.imshow('image',template)
        #按下q键退出
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
        #打印每帧的时间
    cam.stop()
    cv2.destroyAllWindows()
    # 释放资源
    cam.release()

# 创建一个 dxcam 实例,用于录屏
if __name__ == '__main__':
    main()

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
junjia215 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

leo1688 发表于 2023-11-7 22:08
厉害啊,学习了,
lanpo5566 发表于 2023-11-16 18:08
Master7 发表于 2023-11-29 16:12
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-7 10:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表