普通网友 2023-12-02 22:33 采纳率: 0%
浏览 15

在Opencv中将2个点用曲线连接

二值化图像,知道2个断点位置,line函数只能画直线,有什么办法可以用适当的曲线将这2个点连接,有没有知道的,非常感谢

img

img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-12-03 09:15
    关注

    【以下回答由 GPT 生成】

    通过使用OpenCV的"cv2.polylines()"函数可以将给定的两个点连接起来,并使用曲线而不是直线。以下是一个示例代码:

    import numpy as np
    import cv2
    
    # 创建一个空白图像
    image = np.zeros((500, 500), dtype=np.uint8)
    
    # 设置两个点的坐标
    point1 = (100, 100)
    point2 = (400, 400)
    
    # 创建一个空白图像
    image = np.zeros((500, 500), dtype=np.uint8)
    
    # 设置两个点的坐标
    point1 = (100, 100)
    point2 = (400, 400)
    
    # 设置曲线控制点
    control_point = (int((point1[0] + point2[0]) / 2), int((point1[1] + point2[1]) / 2) - 200)
    
    # 定义曲线类型,可以是二次曲线、三次曲线等
    curve_type = cv2.CV_64F
    
    # 计算曲线点坐标
    curve_points = []
    for t in np.arange(0, 1.01, 0.01):
        x = (1 - t) ** 2 * point1[0] + 2 * (1 - t) * t * control_point[0] + t ** 2 * point2[0]
        y = (1 - t) ** 2 * point1[1] + 2 * (1 - t) * t * control_point[1] + t ** 2 * point2[1]
        curve_points.append((int(x), int(y)))
    
    # 绘制曲线
    cv2.polylines(image, [np.array(curve_points)], False, 255, thickness=2)
    
    # 显示图像
    cv2.imshow("Image", image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    

    以上代码中,我们首先创建了一个空白图像。然后我们定义了两个点的坐标,以及一个控制点的坐标。接下来,我们使用np.arange()函数计算出曲线上的点的坐标,并将其存储在一个列表中。最后,我们使用cv2.polylines()函数绘制出曲线。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 12月2日

悬赏问题

  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)