需要 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()