AidCV Python 接口文档
创建窗口 namedWindow
namedWindow(winname, flags = 0, size = None, port = None) -> None | ||||
---|---|---|---|---|
窗口绑定的窗口名,不可重复。 | ||||
窗口属性,无效参数,是对 OpenCV 的兼容性遗留。 | ||||
窗口尺寸,第一位为宽,第二位为高,形如 [width, height]。 | ||||
使用的端口号,默认或传入不可使用的端口号时会使用随机端口。 | ||||
None |
使用指定端口 port 或随机端口构建一个 web 页面,同时在 Web 桌面 中创建一个窗口指向该页面。该 web 页面与 winname 绑定,基于该 winname,开发者可使用其他 api 影响这个 web 页面。当存在多个打开的 Web 桌面 时,每个 Web 桌面 均会弹出该窗口。
注意: 与 OpenCV 不同,在 Web 桌面 中创建的窗口无法自由调整其大小,如果开发者想控制窗口的大小使其与图像匹配,请在使用此 api 时显示传入 size 参数。
使用例
python
try: # aidcv-sdk>=1.0.4
import aidcv as cv2
except:
import cv2
cv2.namedWindow("win0")
cv2.namedWindow("win1", cv2.WINDOW_AUTOSIZE)
cv2.namedWindow("win2", size = (640,480))
cv2.namedWindow("win3", cv2.WINDOW_AUTOSIZE, size = (640,480))
注册鼠标回调函数 setMouseCallback
setMouseCallback(winname, onMouse, userdata = 0) -> None | ||||
---|---|---|---|---|
目标窗口绑定的窗口名。 | ||||
回调函数,该函数将在鼠标点击目标窗口时被调用。回调函数需遵循该格式: call_back(event, x, y, flags, param)。其中 event 为触发的鼠标事件类型对应的常量,与 OpenCV 的定义一致。x,y 为鼠标的点击位置。flags为鼠标事件标志的常量,无效参数,是对 OpenCV 的兼容性遗留。param 为开发者传入的参数,即函数 setMouseCallback 的第三个参数。 | ||||
传递给回调函数的可选参数,开发者自定义的外部数据。 | ||||
None |
使用例
python
try: # aidcv-sdk>=1.0.4
import aidcv as cv2
except:
import cv2
import time
def call_back(event, x, y, flags, params):
print(event,x,y,params)
cv2.namedWindow("win")
cv2.setMouseCallback("win", call_back)
time.sleep(10)
等待按键事件 waitKey
waitKey(delay = 0) -> int or str | ||||
---|---|---|---|---|
超时时间,单位为毫秒,其值小于或等于 0 时将永久等待按键事件。 | ||||
int类型或str类型的常量,为捕获到按键的 ascii 码或按键名。 |
使用例
python
try: # aidcv-sdk>=1.0.4
import aidcv as cv2
except:
import cv2
cv2.namedWindow("aa")
res = cv2.waitKey(10)
print(res)
显示图形 imshow
imshow(winname, frame, port = None) -> None | ||||
---|---|---|---|---|
目标窗口绑定的窗口名。若目标窗口不存在,则会自动调用namedWindow(winname, size = (frame.shape[1], frame.shape[0]), port = port) 创建窗口。 | ||||
待显示的图形数据,通常而言,传入 BGR 色彩的图形数据,以 RGB 色彩进行显示。 | ||||
None |
在目标窗口中显示指定的图形。
使用例
python
try: # aidcv-sdk>=1.0.4
import aidcv as cv2
except:
import cv2
import time
frame = cv2.imread("test.jpg")
cv2.namedWindow("win0")
cv2.imshow("win0", frame)
cv2.imshow("win1", frame)
time.sleep(5)
销毁窗口 destroyWindow
destroyWindow(winname) -> None | ||||
---|---|---|---|---|
目标窗口绑定的窗口名。 | ||||
None |
销毁并关闭名称为 winname 的窗口。
使用例
python
try: # aidcv-sdk>=1.0.4
import aidcv as cv2
except:
import cv2
import time
cv2.namedWindow("win0")
cv2.namedWindow("win1")
time.sleep(3)
cv2.destroyWindow("win0")
time.sleep(5)
销毁全部窗口 destroyAllWindows
destroyAllWindows() -> None | ||||
---|---|---|---|---|
无 | ||||
None |
销毁并关闭当前进程开启的全部窗口。
使用例
python
try: # aidcv-sdk>=1.0.4
import aidcv as cv2
except:
import cv2
import time
cv2.namedWindow("win0")
cv2.namedWindow("win1")
time.sleep(3)
cv2.destroyAllWindows()
time.sleep(5)
类 VideoCapture
VideoCapture 类用于从摄像头或视频文件中捕获视频帧,支持 usb 相机与 mipi 相机,由于底层限制,暂时不支持同时打开多个 mipi 相机。在不使用扩展参数的情况下,与 cv2.VideoCapture 一致,使用扩展参数初始化 VideoCapture 对象会重载为 AidCV 扩展的 VideoCapture。
初始化
VideoCapture 类有两种初始化方式。
VideoCapture() | ||||
---|---|---|---|---|
无 | ||||
一个完成了初始化的 VideoCapture 实例。 |
VideoCapture(filename, apiPreference = 0, device = "usb") | ||||
---|---|---|---|---|
视频文件名,usb相机节点名,或mipi相机 索引(0 为前置相机,1 为后置相机)。 | ||||
选择可用后端,无效参数,是对 OpenCV 的兼容性遗留。 | ||||
相机类型,可用值为 "usb", "mipi"。 | ||||
一个完成了初始化同时打开指定设备或文件的 VideoCapture 实例。 |
使用例
python
try: # aidcv-sdk>=1.0.4
import aidcv as cv2
except:
import cv2
cap = cv2.VideoCapture()
file_cap = cv2.VideoCapture("/home/aidlux/test.mp4")
usb_cap = cv2.VideoCapture("/dev/video2")
mipi_cap = cv2.VideoCapture(0, device = "mipi")
成员函数
VideoCapture().open(filename, apiPreference = 0) -> None | ||||
---|---|---|---|---|
视频文件名,usb相机节点名,或mipi相机 索引(0 为前置相机,1 为后置相机)。 | ||||
选择可用后端,无效参数,是对 OpenCV 的兼容性遗留。 | ||||
None |
打开相机或文件。
使用例
python
try: # aidcv-sdk>=1.0.4
import aidcv as cv2
except:
import cv2
cap = cv2.VideoCapture()
cap.open("/dev/video2")
VideoCapture().isOpened() -> bool | ||||
---|---|---|---|---|
无 | ||||
bool类型的常量,表示当前相机是否已经成功打开。 |
使用例
python
try: # aidcv-sdk>=1.0.4
import aidcv as cv2
except:
import cv2
cap = cv2.VideoCapture("/dev/video2")
print(cap.isOpened())
VideoCapture().read() -> (bool, numpy.array) | ||||
---|---|---|---|---|
无 | ||||
(ret, frame) ret: bool类型的常量,获取成功或失败。 frame: numpy数组,获取到的视频帧。 |
使用例
python
try: # aidcv-sdk>=1.0.4
import aidcv as cv2
except:
import cv2
cap = cv2.VideoCapture("/dev/video2")
ret, frame = cap.read()
if ret:
print(frame.shape)
VideoCapture().get(propId) -> float | ||||
---|---|---|---|---|
参数索引,最大值为18。索引对应参数与 OpenCV 保持一致。 由于底层实现问题,在 device="mipi" 时,目前仅 3: 宽,4: 高,5: 帧率有效。 | ||||
常量,表示对应参数的值。 |
使用例
python
try: # aidcv-sdk>=1.0.4
import aidcv as cv2
except:
import cv2
cap = cv2.VideoCapture("/dev/video2")
print(cap.get(3), cap.get(4))
VideoCapture().set(propId, value) -> bool | ||||
---|---|---|---|---|
参数索引,最大值为18。索引对应参数与 OpenCV 保持一致。由于底层实现问题,在 device="mipi" 时,目前仅 3: 宽,4: 高,5: 帧率有效。 | ||||
对应参数待设置的值。 | ||||
bool类型的常量,表示参数设置是否成功。bool类型的常量,表示参数设置是否成功。 |
使用例
python
try: # aidcv-sdk>=1.0.4
import aidcv as cv2
except:
import cv2
cap = cv2.VideoCapture("/dev/video2")
cap.set(3, 1920)
cap.set(4, 1080)
cap.set(5, 30)
ret, frame = cap.read()
print(frame.shape)
VideoCapture().release() | ||||
---|---|---|---|---|
无 | ||||
None |
使用例
python
try: # aidcv-sdk>=1.0.4
import aidcv as cv2
except:
import cv2
cap = cv2.VideoCapture("/dev/video2")
cap.release()
数学计算 sigmoid
sigmoid(x) -> numpy.array | ||||
---|---|---|---|---|
sigmoid 函数的自变量。 | ||||
numpy.array类型的常量,与参数 x 的shape相同,为参数 x 经过 sigmoid 函数计算后的值。 |
使用例
python
try: # aidcv-sdk>=1.0.4
import aidcv as cv2
except:
import cv2
x = np.array(range(8)).reshape(2,2,2)
print(cv2.sigmoid(x))
数学计算 softmax
softmax(x, axis = 0) -> numpy.array | ||||
---|---|---|---|---|
softmax 函数的自变量。 | ||||
在指定的轴上进行计算。 | ||||
numpy.array类型的常量,与参数 x 的shape相同,为参数 x 在指定轴 axis 上经过 softmax 函数计算后的值。 |
python
try: # aidcv-sdk>=1.0.4
import aidcv as cv2
except:
import cv2
x = np.array(range(8)).reshape(2,2,2)
print(cv2.softmax(x, axis = 2))
生成彩色掩膜 colormask
colormask(mask, color) -> list | ||||
---|---|---|---|---|
二维或三维掩膜,二维掩膜应为 int 类型,三维掩膜应为 float 类型。 | ||||
映射的颜色列表,每个颜色由 (r,g,b) 三维组成。 | ||||
[color_mask] 或 [color_mask,...] [color_mask]: 二维掩膜返回一张 彩色掩膜,标定各个位置属于哪一类。 [color_mask,...]: 三维掩膜返回一个 彩色掩膜组成的列表,分别标定各个位置是否属于该类。 |
使用例
python
try: # aidcv-sdk>=1.0.4
import aidcv as cv2
except:
import cv2
import numpy as np
mask = np.array([[1, -1, 0], [2, 0, -2], [0, 3, -3]])[None]
colors = [(0,255,255)]
res = cv2.colormask(mask, colors)[0]
print(mask)
res = cv2.resize(res, (500,500), interpolation = cv2.INTER_NEAREST)
cv2.namedWindow("win0")
cv2.imshow("win0", res)
cv2.waitKey(3000)
print("next example")
mask = np.array([[1, 3, 0], [2, 0, 0], [0, 3, 0]])
colors = [(0,255,255),(255,0,0),(0,255,0),(0,0,255)]
res = cv2.colormask(mask, colors)[0]
print(mask)
res = cv2.resize(res, (500,500), interpolation = cv2.INTER_NEAREST)
cv2.imshow("win0", res)
cv2.waitKey(3000)
print("over")