最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實現(xiàn)根據(jù)坐標將圖片進行裁剪

 更新時間:2025年11月10日 09:18:55   作者:NO1212  
這篇文章主要為大家詳細介紹了如何使用python實現(xiàn)根據(jù)坐標將圖片進行裁剪,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下

功能:

1.給一個圖片,并給出圖片中所有目標的坐標

2.將圖中給出的坐標用框給標注出來

3.經(jīng)典需求,通常稱為“閱讀順序排序”或“Z字排序”。你需要先按行(從上到下)排序,在同一行內(nèi)再按列(從左到右)排序。將排完序的多個框進行編號

4.對目標框進行裁圖

完整代碼:

import cv2
import numpy as np
import os


def test():
    path = "D:\LAELAOI\Test"
    pointtxt = os.path.join(path, "label_position.txt")
    with open(pointtxt, 'r')as f:
        content = f.readlines()
    print(content)
    boxes = []
    for i in content:
        parts = i.split(',')
        file = parts[0]
        x1, x2, y1, y2 = parts[2],parts[3],parts[4],parts[5].strip()
        print(file, x1, y1, x2, y2)
        boxes.append([x1, y1, x2, y2])
    # 進行排序
    # key=lambda box: (int(box[1]), int(box[0])) 表示:
    #   1. 先按 box 的第 1 個元素(y1)進行升序排序(從上到下)
    #   2. 如果 y1 相同,再按第 0 個元素(x1)進行升序排序(從左到右)
    #   3. int() 是為了將字符串轉(zhuǎn)為數(shù)字,確保正確排序
    sorted_boxes = sorted(boxes, key=lambda box: (int(box[1]), int(box[0])))
    img = cv2.imread(r"D:\LAELAOI\Test\L_main_CAM_basler.jpg")
    # img = cv2.resize(img, (1500, 1000))
    copy_img = img.copy()
    # 遍歷排序后的列表,進行編號(從1開始)
    # for index, box in enumerate(sorted_boxes, 1):
    #     x1, x2, y1, y2 = int(box[0]), int(box[1]), int(box[2]), int(box[3])
    #     cv2.rectangle(copy_img,(int(box[0]),int(box[1])), (int(box[2]),int(box[3])), (0,0, 255), 2)
    #     print(f"編號: {index}, 坐標: {box}")



    # --- 主要修改和新增的邏輯在這里 ---
    for index, box in enumerate(sorted_boxes, 1):
        # 1. 將字符串坐標轉(zhuǎn)換為整數(shù)
        x1, y1, x2, y2 = map(int, box)

        # 2. 【關鍵修復】確保坐標順序正確,防止計算負數(shù)半徑
        # 重新計算左上角和右下角坐標,確保 x1 <= x2, y1 <= y2
        top_left_x = min(x1, x2)
        top_left_y = min(y1, y2)
        bottom_right_x = max(x1, x2)
        bottom_right_y = max(y1, y2)

        # 3. 繪制矩形框(使用修正后的坐標)
        cv2.rectangle(copy_img, (top_left_x, top_left_y), (bottom_right_x, bottom_right_y), (0, 0, 255), 2)

        # --- 新增代碼開始 ---
        # 4. 計算矩形中心點
        center_x = (top_left_x + bottom_right_x) // 2
        center_y = (top_left_y + bottom_right_y) // 2

        # 7. 在圓圈中心寫入編號
        font = cv2.FONT_HERSHEY_SIMPLEX
        text = str(index)
        # 計算文字大小,以便居中
        (text_width, text_height), baseline = cv2.getTextSize(text, font, 1, 2)

        # 計算文字的坐標,使其在圓圈內(nèi)居中
        text_x = center_x - text_width // 2
        text_y = center_y + text_height // 2

        # 繪制文字
        # 參數(shù):圖像, 文字, 坐標, 字體, 大小, 顏色(白色), 粗細
        cv2.putText(copy_img, text, (text_x, text_y), font, 10, (0, 0, 255), 3)
        # --- 新增代碼結束 ---

        print(f"編號: {index}, 原始坐標: {box}, 修正后坐標: {[top_left_x, top_left_y, bottom_right_x, bottom_right_y]}")
        cropped_img = img[y1:y2, x1:x2]
        savefile = r"D:\LAELAOI\Test\{}.jpg".format(index)
        print(savefile)
        cv2.imwrite(savefile, cropped_img)
    cv2.imwrite(r"D:\LAELAOI\Test\1111L_main_CAM_basler.jpg", copy_img)
    cv2.imshow('rr', copy_img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
if __name__ == '__main__':
    test()

效果圖:

到此這篇關于python實現(xiàn)根據(jù)坐標將圖片進行裁剪的文章就介紹到這了,更多相關python圖片裁剪內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python使用Paramiko模塊編寫腳本進行遠程服務器操作

    Python使用Paramiko模塊編寫腳本進行遠程服務器操作

    這篇文章主要介紹了Python使用Paramiko模塊編寫腳本進行遠程服務器操作的實例,通過Paramiko能夠方便地使用SSH服務,需要的朋友可以參考下
    2016-05-05
  • Python流程控制常用工具詳解

    Python流程控制常用工具詳解

    這篇文章主要介紹了Python流程控制常用工具詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • 解讀python如何實現(xiàn)決策樹算法

    解讀python如何實現(xiàn)決策樹算法

    在本篇文章里我們給讀者們分享了關于python如何實現(xiàn)決策樹算法的相關知識點內(nèi)容,需要的朋友們參考下。
    2018-10-10
  • Django rest framework工具包簡單用法示例

    Django rest framework工具包簡單用法示例

    這篇文章主要介紹了Django rest framework工具包簡單用法,結合匿名訪問控制的具體實例分析了Django rest framework工具包的注冊、路由設置、視圖、權限控制、配置等相關操作技巧,需要的朋友可以參考下
    2018-07-07
  • python實現(xiàn)進度條的多種實現(xiàn)

    python實現(xiàn)進度條的多種實現(xiàn)

    這篇文章主要介紹了python實現(xiàn)進度條的多種實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • python中str、bytes、十六進制字符串之間的相互轉(zhuǎn)換方法

    python中str、bytes、十六進制字符串之間的相互轉(zhuǎn)換方法

    這篇文章主要介紹了在Python中字符串(str)、字節(jié)序列(bytes)以及十六進制字符串之間的轉(zhuǎn)換方法,包括如何使用.encode()、.decode()、bytes.fromhex()和.hex()方法進行轉(zhuǎn)換,需要的朋友可以參考下
    2025-03-03
  • Scipy稀疏矩陣bsr_array的使用

    Scipy稀疏矩陣bsr_array的使用

    本文主要介紹了Scipy稀疏矩陣bsr_array的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • python+html文字點選驗證碼加固安全防線

    python+html文字點選驗證碼加固安全防線

    這篇文章主要為大家介紹了python文字點選驗證碼加固安全防線實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • Python如何同時讀寫Excel

    Python如何同時讀寫Excel

    這篇文章主要介紹了Python如何同時讀寫Excel問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • python 決策樹算法的實現(xiàn)

    python 決策樹算法的實現(xiàn)

    這篇文章主要介紹了python 決策樹算法的實現(xiàn),幫助大家更好的理解和使用python 機器學習算法,感興趣的朋友可以了解下
    2020-10-10

最新評論

牡丹江市| 龙岩市| 衡南县| 茶陵县| 千阳县| 白山市| 肇庆市| 陆河县| 平昌县| 四会市| 贵阳市| 忻城县| 商水县| 醴陵市| 富裕县| 邳州市| 阿瓦提县| 莱西市| 浮梁县| 穆棱市| 克拉玛依市| 韩城市| 安陆市| 晋中市| 贵阳市| 辽源市| 翁源县| 苏尼特右旗| 左贡县| 凌源市| 桐柏县| 印江| 咸宁市| 安多县| 顺平县| 南城县| 娄烦县| 永城市| 景洪市| 海原县| 特克斯县|