基于OpenCV的迷宫路径查找

附上代码:

python 复制代码
import cv2
import numpy as np

# 读取图像
img = cv2.imread("img_3.png")
thres_min = 150  # 二值化最小阈值

if not img is None:
    # 二值化处理
    ret, img = cv2.threshold(img, thres_min, 255, cv2.THRESH_BINARY)
    cv2.imshow("img_thres", img)

    # img备份,转换为灰度图,并反转
    copy = img.copy()
    copy = cv2.cvtColor(copy, cv2.COLOR_BGR2GRAY)
    ret, copy = cv2.threshold(copy, thres_min, 255, cv2.THRESH_BINARY_INV)
    cv2.imshow("copy", copy)

    # 查找轮廓,并绘制在全黑图像上
    contours, hierarchy = cv2.findContours(copy, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    draw = np.zeros_like(img)
    cv2.drawContours(draw, contours, 0, (255, 255, 255), -2)
    cv2.imshow("img2", draw)

    # 进行膨胀腐蚀操作
    kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(19,19))
    dilated = cv2.dilate(draw, kernel, iterations=2)
    cv2.imshow("dilate", dilated)
    eroded = cv2.erode(dilated, kernel, iterations=2)
    cv2.imshow("erode", eroded)

    # 膨胀腐蚀相减
    diff = cv2.absdiff(dilated, eroded)
    diff = cv2.cvtColor(diff, cv2.COLOR_BGR2GRAY)
    cv2.imshow("diff", diff)

    # 在差异图diff中查找轮廓,并在原图上绘制轮廓
    contours2, hierarchy2 = cv2.findContours(diff, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    cv2.drawContours(img, contours2, 0, (0, 0, 255), -1)
    cv2.imshow("result", img)

cv2.waitKey(0)
cv2.destroyAllWindows()
相关推荐
幂简集成explinks3 分钟前
腾讯云 DeepSeek API 半价取消后的成本优化实践
人工智能·程序员·设计
动能小子ohhh4 分钟前
AI智能体(Agent)大模型入门【2】--基于llamaindx部署本地的聊天模型。
人工智能·python·aigc·ai编程
小贤编程手记23 分钟前
科技行业新闻发布平台哪家好?多场景推广专业方案服务商推荐
人工智能
金井PRATHAMA24 分钟前
认知语义学对人工智能自然语言处理深层语义分析的影响与启示
人工智能·自然语言处理·知识图谱
该用户已不存在29 分钟前
腾讯放大招,Claude Code 国产平替发布
人工智能·ai编程
却道天凉_好个秋41 分钟前
深度学习(六):代价函数的意义
人工智能·深度学习·代价函数
深耕AI1 小时前
【参数详解与使用指南】PyTorch MNIST数据集加载
人工智能·pytorch·python
自信的小螺丝钉1 小时前
【AI知识点】模型训练优化之——混合精度训练
人工智能·ai·大模型·混合精度训练
aopstudio1 小时前
如何优雅地清理Hugging Face缓存到本地的模型文件(2025最新版)
人工智能·python·缓存·语言模型
叫我木子2 小时前
c语言,识别到黑色就自动开枪,4399单击游戏狙击战场,源码分享,豆包ai出品
c语言·人工智能·游戏