vscode是什么
halcon是什么
机器视觉 Halcon安装教程:halcon和opencv哪个好用 (baidu.com)
OpenCV偏科研,有难度,有深度,完全从底层开发,对使用者门槛高,开发效率低,开发慢;Halcon偏工程应用,使用封装好的功能函数,对使用者门槛低,开发效率高,开发快。
waitKey
cv2.waitKey(delay)
waitKey()的基本逻辑,他会在一定时间内等待接收键盘上的一个值(都是在展示imshow后面使用)
参数delay为等待键盘触发的时间,单位为毫秒,返回值为-1(表示没有按键按下)或ASCII码。
1、若参数delay≤0:表示一直等待按键;
2、若delay取正整数:表示等待按键的时间,比如cv2.waitKey(30),就是等待30毫秒(milliseconds);(视频中一帧数据显示(停留)的时间)。
cv2.waitKey(delay)返回值:
1、等待期间有按键:返回按键的ASCII码(比如:Esc的ASCII码为27,即0001 1011);(接收值为非空,if代码块执行);
2、等待期间没有按键:返回 -1;(非0非空,if代码块执行)。
原文链接:https://blog.csdn.net/weixin_54977011/article/details/120208280
ord()函数将字符转换为ASCII码;chr()将字符串转换为 ASCII码。
读取视频:
cv2.VideoCapture(0)
cv2.VideoCapture('test.mp4')
0为本机摄像头,括号内可放置视频路径。
截取部分图像数据roi:
roi = img[0:50, 0:200]
颜色通道提取、融合:
b, g, r = cv2.split(img)
img_ = cv2.merge((b, g, r))
只保留R通道:三通道图像(0,1,2),保留最后一个通道(索引为2),其他通道置为0.
img[:, :, 0] = 0
img[:, :, 1] = 0
cv2.imshow('R', img)
边界填充
top_size, bottom_size, left_size, right_size = (50, 50, 50, 50)
replicate = cv2.copyMakeBorder(cat, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_REPLICATE)
cv2.imshow('replicate', replicate)
# 复制法,复制最边缘像素
reflect = cv2.copyMakeBorder(cat, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_REFLECT)
cv2.imshow('reflect', reflect)
# 反射法,hgfedcba|abcdefgh|hgfedcba
reflect101 = cv2.copyMakeBorder(cat, top_size, bottom_size, left_size, right_size, cv2.BORDER_REFLECT_101)
cv2.imshow(' reflect101', reflect101)
# 反射法,以嘴边缘像素为轴,对称。hgfedcb|abcdefgh|gfedcba
wrap = cv2.copyMakeBorder(cat, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_WRAP)
cv2.imshow('wrap', wrap)
# 外包装法,abcdefgh|abcdefgh|abcdefgh
constant = cv2.copyMakeBorder(cat, top_size, bottom_size, left_size, right_size, cv2.BORDER_CONSTANT, dst=0)
cv2.imshow('constant', constant)
# 常量法,常数值填充
cv2.waitKey() # 等待键盘输入,任意输入,窗口消失
cv2.destroyWindow('cat') # 销毁内存