[UG 二次開發 python ] 截圖,並用 opencv 顯示出來
阿新 • • 發佈:2022-05-24
需要 numpy,cv2
截圖,去除背景,只顯示主要部分
# nx: threaded from typing import Dict import NXOpen import numpy as np import cv2 def main(): theUI = NXOpen.UI.GetUI() b = theUI.CreateImageExportBuilder() b.RegionMode = False b.FileFormat = NXOpen.Gateway.ImageExportBuilder.FileFormats.Jpg path = f"d:\\tmp\\_tmp.jpg" b.FileName = path b.BackgroundOption = NXOpen.Gateway.ImageExportBuilder.BackgroundOptions.CustomColor b.SetCustomBackgroundColor([1.0, 1.0, 1.0]) b.EnhanceEdges = True b.Commit() b.Destroy() x = cv2.imread(path) x2 = cv2.cvtColor(x, cv2.COLOR_BGR2GRAY) x2 = 255 - x2 cts, hirs = cv2.findContours(x2, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) ct = max(cts, key=cv2.contourArea) rct = cv2.boundingRect(ct) aymin = rct[0] aymax = rct[0] + rct[2] axmin = rct[1] axmax = rct[1] + rct[3] print(rct) print(x.shape) print([axmin, axmax, aymin, aymax]) y = x[axmin:axmax, aymin:aymax] cv2.namedWindow("im") cv2.imshow("im", y) cv2.waitKey() cv2.destroyAllWindows() if __name__ == "__main__": main()