红穆笔记
首頁 語言筆記 python測量圖片寬度高度,交互測量腳本
語言筆記 python

python測量圖片寬度高度,交互測量腳本

python测量图片宽度高度,交互测量脚本
import cv2
import numpy as np

image_path = r"C:\Users\18102\Downloads\bg.png"

# 讀取圖片(保留Alpha通道)
img = cv2.imread(image_path, cv2.IMREAD_UNCHANGED)
if img is None:
    print("無法讀取圖片,請檢查路徑")
    exit()

# 分離通道
if img.shape[2] == 4:
    bgr = img[:, :, :3]
    alpha = img[:, :, 3] / 255.0
    # 創建白色背景 (也可以改爲 (200,200,200) 淺灰色)
    white_bg = np.full_like(bgr, 255, dtype=np.uint8)
    # 混合:前景*alpha + 背景*(1-alpha)
    blended = (bgr.astype(np.float32) * alpha[:, :, np.newaxis] + 
               white_bg.astype(np.float32) * (1 - alpha[:, :, np.newaxis]))
    display_img = blended.astype(np.uint8)
else:
    display_img = img  # 無透明通道,直接顯示

# 可選:顯示棋盤格輔助背景(更專業)
# 這裏提供棋盤格生成函數,如果需要可註釋掉上面的白色,啓用下面代碼
def create_checkerboard(width, height, square=20, color1=(200,200,200), color2=(255,255,255)):
    board = np.zeros((height, width, 3), dtype=np.uint8)
    for y in range(height):
        for x in range(width):
            if (x // square + y // square) % 2 == 0:
                board[y, x] = color1
            else:
                board[y, x] = color2
    return board

# 如果要用棋盤格背景,取消註釋以下4行,並註釋掉上面的白色背景代碼:
# checker = create_checkerboard(img.shape[1], img.shape[0])
# checker_bgr = checker.astype(np.float32)
# blended = (bgr.astype(np.float32) * alpha[:, :, np.newaxis] + 
#            checker_bgr * (1 - alpha[:, :, np.newaxis]))
# display_img = blended.astype(np.uint8)

clone = display_img.copy()
points = []

def click_event(event, x, y, flags, param):
    if event == cv2.EVENT_LBUTTONDOWN:
        points.append((x, y))
        cv2.circle(clone, (x, y), 5, (0, 0, 255), -1)  # 紅色點更醒目
        cv2.putText(clone, f"({x},{y})", (x+10, y-10), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0,0,255), 2)
        cv2.imshow("Image", clone)
        print(f"已記錄點: ({x}, {y})")
        if len(points) == 2:
            x1, y1 = points[0]
            x2, y2 = points[1]
            left = min(x1, x2)
            top = min(y1, y2)
            right = max(x1, x2)
            bottom = max(y1, y2)
            width = right - left
            height = bottom - top
            print("\n========== 測量結果 ==========")
            print(f"左上角: ({left}, {top})")
            print(f"右下角: ({right}, {bottom})")
            print(f"寬度: {width}, 高度: {height}")
            print(f"SCREEN_RECT = ({left}, {top}, {width}, {height})")
            print("================================")
            cv2.destroyAllWindows()

cv2.namedWindow("Image", cv2.WINDOW_NORMAL)  # 可調整窗口大小
cv2.imshow("Image", clone)
cv2.setMouseCallback("Image", click_event)
print("請依次點擊圖片中屏幕區域的左上角和右下角(點擊兩下後自動退出)")
cv2.waitKey(0)
cv2.destroyAllWindows()

 

微信赞赏

微信

支付宝赞赏

支付寶

✍️ 作者: 紅穆

網站管理員 · 感謝閱讀,更多精彩內容敬請關注

作者主頁 查看主頁 →

相關文章

Import "requests" could not be resolved from source

Import "requests" could not be resolved from source 語言筆記 python

這個報錯是在使用Pylance這個Python語言服務器時出現的。其中,"Import "requests" could not be resolved from source"這個錯誤提示表示在你的代碼中引用了requests模塊,但是Pylance無法從源中找到該模塊的位置。可能的原因是你沒有安…
👁 1771
重新安装Python和requests库

重新安裝Python和requests庫 語言筆記 python

如果您遇到了 "Import "requests" could not be resolved from source" 的問題,可以嘗試重新安裝 Python 和 requests 庫。首先,您需要卸載當前的 Python 和 requests 庫。在 Windows 系統上,您可以通過在命令提示…
👁 439
WARNING: Skipping requests as it is not installed.

WARNING: Skipping requests as it is not installed. 語言筆記 python

這個錯誤提示說明你的Python環境中缺少requests庫,而你的代碼中又調用了這個庫,因此Python無法正常執行你的代碼。解決這個問題的方法是安裝requests庫。你可以在命令行中使用pip命令來安裝:pip install requests如果你使用的是Python3,可以使用pip3命令…
👁 2100
python报错,这是什么原因?AttributeError: partially initialized module 'openai' has no attribute 'Completion' (most likely due to a circular import)

python報錯,這是什麼原因?AttributeError: partially initialized module 'openai' has no attribute 'Completion' (most likely due to a circular import) 語言筆記 python

這個錯誤提示表明在導入 openai 模塊和特定的 Completion 屬性時出現了問題,很可能是由於循環導入導致的。出現這個錯誤的原因可能是你的代碼中存在兩個或多個模塊之間相互導入,形成了循環依賴。例如,模塊A導入了模塊B,而模塊B又導入了模塊A。循環導入會導致模塊在加載時無法正確地初始化,從而…
👁 656
python如何打包在Windows上运行?

python如何打包在Windows上運行? 語言筆記 python

在Windows上打包和運行Python程序的最常用方式是使用PyInstaller。PyInstaller是一個免費的、跨平臺的Python應用程序打包工具,可以將Python代碼和其依賴的庫打包成一個獨立的可執行文件,使得在沒有安裝Python解釋器的系統上運行Python程序成爲可能。以下是使…
👁 300
python开发用什么编程软件好?

python開發用什麼編程軟件好? 語言筆記 python

Python開發的編程軟件有很多,以下是一些常用的Python集成開發環境(IDE)和編輯器:PyCharmPyCharm是一個由JetBrains開發的集成開發環境,它專爲Python開發者設計。PyCharm功能強大,提供了代碼補全、調試、版本控制、代碼重構等一系列高級功能,可以幫助開發者提高工…
👁 175

推薦閱讀

响应式户外装备体育装备网站模板 0981

響應式戶外裝備體育裝備網站模板 0981 實用收藏 易優模板

此套eyoucms響應式模板適用於戶外裝備與體育裝備行業,設計風格活力戶外,能夠展示戶外裝備產品、體育用品、品牌故事及運動方案。有助於戶外體育品牌在線上展示產品,吸引運動愛好者。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結…
👁 48
跑步机健身器材器械网站模板 0390

跑步機健身器材器械網站模板 0390 實用收藏 易優模板

一款針對跑步機、健身器材與器械行業的eyoucms網站模板。設計風格活力健康,能夠展示健身器材產品、跑步機系列、運動方案及品牌形象。有助於健身器材品牌在線上展示產品,吸引健身房與家庭用戶。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常…
👁 33
(自适应移动端)棕色家具装修pbootcms网站模板 响应式家具建材类网站源码下载 0437

(自適應移動端)棕色傢俱裝修pbootcms網站模板 響應式傢俱建材類網站源碼下載 0437 實用收藏 pbootcms模板

本套自適應移動端的棕色傢俱裝修與建材類PbootCMS響應式網站模板。設計風格溫暖木質,適合展示傢俱產品、裝修案例及建材貿易。有助於傢俱建材企業在線上展示品牌,吸引裝修公司與消費者。模板展示 安裝說明 網站後臺:/admin.php 賬號:admin 密碼:admin 解壓密碼:www.4s5.cn…
👁 47
响应式精品手表箱包网站模板 0982

響應式精品手錶箱包網站模板 0982 實用收藏 易優模板

一款針對精品手錶與箱包行業的eyoucms響應式網站模板。設計風格高端時尚,能夠展示手錶產品、箱包系列、品牌故事及定製服務。有助於奢侈品品牌在線上展示產品,吸引高淨值客戶。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優C…
👁 31