Tags:

พอดีลองรันโค้ด python สำหรับทำ object detection แต่มีส่วนที่ไม่เข้าใจอันนึง คือการกำหนดค่า index เริ่มต้นของ "labelmap" สำหรับฟังค์ชั่น putText (ตรงบรรทัด cv2.putText) ว่าทำไมมันถึงเป็น i-1 เพราะมันจะทำให้ค่าเริ่มต้นของ index เป็น -1 (ทำไมไม่เริ่มจาก 0)

def detect(frame, net, transform):
height, width = frame.shape[:2]
frame_t = transform(frame)[0]
x = torch.from_numpy(frame_t).permute(2, 0, 1)
x = Variable(x.unsqueeze(0))
y = net(x)
detections = y.data
scale = torch.Tensor([width, height, width, height])
# detections = [batch, number of classes, number of occurence, (score, x0, Y0, x1, y1)]

for i in range(detections.size(1)):   
    j = 0   # the occurance
    while detections[0, i, j, 0] >= 0.6:   
        pt = (detections[0, i, j, 1:] * scale).numpy()   
        cv2.rectangle(frame, (int(pt[0]), int(pt[1])), (int(pt[2]), int(pt[3])), (255, 0, 0), 2)   
        cv2.putText(frame, labelmap[i - 1], (int(pt[0]), int(pt[1])), cv2.FONT_HERSHEY_SIMPLEX, 2, (255, 255, 255), 2, cv2.LINE_AA)
        j += 1
return frame 

ท่านใดสามารถอธิบายเหตุผลได้ จะขอบคุณมากเลยครับ

Get latest news from Blognone
By: khao_lek on 28 November 2017 - 16:51 #1021323

ปกติตัว labelmap จะต้องมีค่ามาก่อน มาดื่อๆ แบบนี้น่าจะเออเร่อ เช่น labelmap= "ABCDE"
ถ้าเป็นแบบตัวนี้ labelmap[-1] จะมีค่าเท่ากับ "E" และจะไม่error
และแต่ถ่าเป็น list ก็จะหาเหตุไม่ได้ว่าเพราะอะไร code นี้ run แล้วใช้งานได้หรือไม่ ?

By: pavangcc on 26 August 2022 - 17:14 #1259498 Reply to:1021323

Is there a way to identify what action started QCP Calculator Plugin script in Salesforce CPQ?
I'm using a JS script as a plugin for QCP calculator to do some stuff after every change in Quote Edit Lines.

Quote Edit Lines

Now I need to run the part of the script only when user presses Calculate or Save button. The only way I see is to somehow find out in the script, what was the reason of this script to run (did user press Calculate or Save button or did he edit any field so the script started). Script functions have 3 params: quoteLineModels, quoteModel, conn; I've investigated the difference between these objects when user pressed Calculate button and when user edited any field not changing the value (e.g. from 150 to 150) and found no difference

Calculate Immediately

Unchecking Calculate Immediately checkbox in CPQ package settings is not a solution - I need this checkbox for other calculations, not for the script