• Python-opencv绘制图像检测框和分割区域


    图像标注绘制

    绘制图像检测框
    绘制图像分割区域
    

    代码示例

    #!/usr/bin/env python3
    # -*- coding: UTF-8 -*-
    
    import json
    from pathlib import Path
    import cv2
    
    
    if __name__ == "__main__":
        """opencv 在图像上标注检测 box 和文字 detect"""
        img_dir = r"F:dataimgs"
        file_name = r"F:datajsonsite_my.txt"
        blue = (255, 0, 0)
        mark_font = cv2.FONT_HERSHEY_SCRIPT_COMPLEX
        with open(file_name, mode="r", encoding="utf-8") as file_obj:
            for i, data in enumerate(file_obj):
                # JSON字符串转py对象
                json_str = json.loads(data)
                img_nm = json_str["img_key"]
                img_path = str(Path(img_dir).joinpath(img_nm))
                print(img_path)
                img = cv2.imread(img_path)
                # 对图像进行mark
                for idx, mark_point in enumerate(json_str["ccle"]):
                    # list中所有数值类型转换,且数据类型tuple
                    point = tuple(map(int, mark_point["ata"]))
                    category = mark_point["trs"]["ory"]
                    cv2.rectangle(img=img, pt1=point[0:2], pt2=point[2:4], color=blue, thickness=0)
                    cv2.putText(img=img, text=category, org=point[0:2], fontFace=mark_font, fontScale=0.5, color=(0, 0, 255))
                cv2.imshow(winname="My_test_img", mat=img)
                cv2.waitKey(delay=1000)
                cv2.destroyWindow(winname="My_test_img")
                output = str(Path(img_dir).joinpath("img_"+str(i)+".jpg"))
                print(output)
                cv2.imwrite(filename=output, img=img)
    

    分割代码示例

    import os.path
    import cv2
    import numpy as np
    
    img_dir = r"F:data	rain_seg"
    img_path= os.path.join(img_dir,"Camera01.jpg")
    mark_frame = cv2.imread(img_path).copy()
    print(mark_frame.shape)
    mark_frame_org = cv2.imread(img_path).copy()
    item_parsers = [[330, 500], [600, 120], [760, 530], [470, 630], [300, 580]]
    view_color = (110, 0, 255)
    triangle = np.array(item_parsers, np.int32)
    mask_frame = cv2.fillConvexPoly(mark_frame, triangle, view_color)
    dst = cv2.addWeighted(mark_frame_org, .2, mask_frame, .5, 0)
    cv2.imshow("my",dst)
    cv2.waitKey(delay=0)  
    

    参考

    python3 , opencv 在图像上标注检测 box 和文字https://blog.csdn.net/tutu96177/article/details/87783857
  • 相关阅读:
    Daily Scrum 10.31
    Daily Scrum 10.30
    Daily Scrum 10.29
    Daily Scrum 10.28
    扩展设置
    安装
    james+javamail入门
    解决ZF2_PATH environment
    Apache Httpd Server 2.2升级2.4
    缓存,spring
  • 原文地址:https://www.cnblogs.com/ytwang/p/15163788.html
Copyright © 2020-2023  润新知