Embedded_game/QR/find_qr_block.py
2025-01-02 12:48:11 +08:00

42 lines
1.1 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- coding: utf-8 -*-
# @Time : 2024/2/18 14:23
# @Author : len
# @File : find_qr_block.py
# @Software: PyCharm
# @Comment :
import cv2
import numpy as np
# 读取图像
image_path = './android_img/img_240218/img_5.png' # 替换为你的图像文件路径
image = cv2.imread(image_path)
# 灰度化
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 应用阈值处理或者Canny边缘检测
# ret, thresh = cv2.threshold(gray, 127, 255, 0) # 二值化阈值处理
# thresh = cv2.Canny(image, 50, 150) # 或者使用Canny边缘检测
thresh = cv2.Canny(gray, 50, 150) # 或者使用Canny边缘检测
# 寻找轮廓
contours, _ = cv2.findContours(thresh, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
# 筛选和绘制轮廓
for cnt in contours:
# 轮廓近似
epsilon = 0.05 * cv2.arcLength(cnt, True)
approx = cv2.approxPolyDP(cnt, epsilon, True)
# 如果近似轮廓有4个顶点则可能是矩形或方块
if len(approx) == 4:
# 绘制轮廓
cv2.drawContours(image, [approx], -1, (0, 255, 0), 3)
# 显示图像
cv2.imshow('gray', gray)
cv2.imshow('Image with Blocks', image)
cv2.waitKey(0)
cv2.destroyAllWindows()