fix: Windows exit code on python demos #58

This commit is contained in:
esimov
2022-11-09 12:40:30 +02:00
parent ce57eb8022
commit 4ed29aa592
8 changed files with 17 additions and 35 deletions

View File

@@ -3,7 +3,6 @@ from ctypes import *
import numpy as np
import os
import cv2
import time
os.system('go build -o pigo.so -buildmode=c-shared pigo.go')
pigo = cdll.LoadLibrary('./pigo.so')

View File

@@ -1,10 +1,8 @@
from ctypes import *
import subprocess
import numpy as np
import os
import cv2
import time
os.system('go build -o pigo.so -buildmode=c-shared pigo.go')
pigo = cdll.LoadLibrary('./pigo.so')

View File

@@ -68,7 +68,7 @@ typedef struct { void *data; GoInt len; GoInt cap; } GoSlice;
extern "C" {
#endif
extern GoUintptr FindFaces(GoSlice pixels);
extern __declspec(dllexport) GoUintptr FindFaces(GoSlice pixels);
#ifdef __cplusplus
}

View File

@@ -1,17 +1,15 @@
from ctypes import *
import subprocess
import numpy as np
import os
import cv2
import time
os.system('go build -o flploc.so -buildmode=c-shared flploc.go')
pigo = cdll.LoadLibrary('./flploc.so')
os.system('rm flploc.so')
MAX_NDETS = 2024
ARRAY_DIM = 5
NUM_LP = 95
# define class GoPixelSlice to map to:
# C type struct { void *data; GoInt len; GoInt cap; }
@@ -36,7 +34,7 @@ def process_frame(pixs):
if data_pointer :
buffarr = ((c_longlong * ARRAY_DIM) * MAX_NDETS).from_address(addressof(data_pointer.contents))
res = np.ndarray(buffer=buffarr, dtype=c_longlong, shape=(MAX_NDETS, ARRAY_DIM,))
res = np.ndarray(buffer=buffarr, dtype=c_longlong, shape=(NUM_LP, ARRAY_DIM,))
# The first value of the buffer aray represents the buffer length.
dets_len = res[0][0]
@@ -52,10 +50,6 @@ cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
# Changing the camera resolution introduce a short delay in the camera initialization.
# For this reason we should delay the object detection process with a few milliseconds.
time.sleep(0.4)
showPupil = True
showEyes = False
showLandmarkPoints = True

View File

@@ -68,7 +68,7 @@ typedef struct { void *data; GoInt len; GoInt cap; } GoSlice;
extern "C" {
#endif
extern GoUintptr FindFaces(GoSlice pixels);
extern __declspec(dllexport) GoUintptr FindFaces(GoSlice pixels);
#ifdef __cplusplus
}

View File

@@ -1,6 +1,5 @@
from ctypes import *
import subprocess
import numpy as np
import os
import cv2
@@ -8,7 +7,6 @@ import time
os.system('go build -o puploc.so -buildmode=c-shared puploc.go')
pigo = cdll.LoadLibrary('./puploc.so')
os.system('rm puploc.so')
MAX_NDETS = 2024
ARRAY_DIM = 5
@@ -36,7 +34,7 @@ def process_frame(pixs):
if data_pointer :
buffarr = ((c_longlong * ARRAY_DIM) * MAX_NDETS).from_address(addressof(data_pointer.contents))
res = np.ndarray(buffer=buffarr, dtype=c_longlong, shape=(MAX_NDETS, ARRAY_DIM,))
res = np.ndarray(buffer=buffarr, dtype=c_longlong, shape=(ARRAY_DIM, ARRAY_DIM))
# The first value of the buffer aray represents the buffer length.
dets_len = res[0][0]
@@ -52,10 +50,6 @@ cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
# Changing the camera resolution introduce a short delay in the camera initialization.
# For this reason we should delay the object detection process with a few milliseconds.
time.sleep(0.4)
showPupil = True
showEyes = False
@@ -84,7 +78,7 @@ while(True):
(0, 255, 0), 2
)
cv2.imshow('', frame)
cv2.imshow('Pupil / eyes localization', frame)
key = cv2.waitKey(1)
if key & 0xFF == ord('q'):

View File

@@ -68,7 +68,7 @@ typedef struct { void *data; GoInt len; GoInt cap; } GoSlice;
extern "C" {
#endif
extern GoUintptr FindFaces(GoSlice pixels);
extern __declspec(dllexport) GoUintptr FindFaces(GoSlice pixels);
#ifdef __cplusplus
}

View File

@@ -1,14 +1,11 @@
from ctypes import *
import subprocess
import numpy as np
import os
import cv2
import time
os.system('go build -o puploc.so -buildmode=c-shared puploc.go')
pigo = cdll.LoadLibrary('./puploc.so')
os.system('rm puploc.so')
MAX_NDETS = 2024
ARRAY_DIM = 5
@@ -50,7 +47,7 @@ def process_frame(pixs):
if data_pointer :
buffarr = ((c_longlong * ARRAY_DIM) * MAX_NDETS).from_address(addressof(data_pointer.contents))
res = np.ndarray(buffer=buffarr, dtype=c_longlong, shape=(MAX_NDETS, ARRAY_DIM,))
res = np.ndarray(buffer=buffarr, dtype=c_longlong, shape=(ARRAY_DIM, ARRAY_DIM,))
# The first value of the buffer aray represents the buffer length.
dets_len = res[0][0]
@@ -66,10 +63,6 @@ cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
# Changing the camera resolution introduce a short delay in the camera initialization.
# For this reason we should delay the object detection process with a few milliseconds.
time.sleep(0.4)
while(True):
ret, frame = cap.read()
pixs = np.ascontiguousarray(frame[:, :, 1].reshape((frame.shape[0], frame.shape[1])))
@@ -87,7 +80,11 @@ while(True):
px, py = col, row
elif angle > 0:
if show_face:
cv2.rectangle(frame, (col-scale/2, row-scale/2), (col+scale/2, row+scale/2), (0, 0, 255), 2)
cv2.rectangle(frame,
(int(col)-int(scale/2), int(row)-int(scale/2)),
(int(col)+int(scale/2), int(row)+int(scale/2)),
(0, 0, 255), 2
)
src_img = cv2.imread(base_dir + "/" + source_imgs[img_idx], cv2.IMREAD_UNCHANGED)
img_height, img_width, img_depth = src_img.shape
@@ -119,10 +116,10 @@ while(True):
if px == None or py == None:
continue
y1 = row-scale/2+(row-scale/2-(py-height))
y2 = row-scale/2+height+(row-scale/2-(py-height))
x1 = col-scale/2
x2 = col-scale/2+width
y1 = int(row-scale/2+(row-scale/2-(py-height)))
y2 = int(row-scale/2+height+(row-scale/2-(py-height)))
x1 = int(col-scale/2)
x2 = int(col-scale/2+width)
if y1 < 0 or y2 < 0:
continue