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:\data\imgs"
    file_name = r"F:\data\json\site_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\train_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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM