目录
OpenCV这么简单为啥不学——1.8、threshold阈值0-4效果对照图
计算机视觉市场巨大而且持续增长,且这方面没有标准API,如今的计算机视觉软件大概有以下三种:
1、研究代码(慢,不稳定,独立并与其他库不兼容) 2、耗费很高的商业化工具(比如Halcon, MATLAB+Simulink) 3、依赖硬件的一些特别的解决方案(比如视频监控,制造控制系统,医疗设备)这是如今的现状,而标准的API将简化计算机视觉程序和解决方案的开发,OpenCV致力于成为这样的标准API。
OpenCV致力于真实世界的实时应用,通过优化的C代码的编写对其执行速度带来了可观的提升,并且可以通过购买Intel的IPP高性能多媒体函数库(Integrated Performance Primitives)得到更快的处理速度。
故而我们选择学习OpenCV,我们来一步步的学习OpenCV。
语法:
cv2.threshold (src, thresh, maxval, type)
参数:
阈值 | 小于阈值的像素点 | 大于阈值的像素点 |
---|---|---|
0 | 置0 | 置填充色 |
1 | 置填充色 | 置0 |
2 | 保持原色 | 置灰色 |
3 | 置0 | 保持原色 |
4 | 保持原色 | 置0 |
小于阈值的像素点置0,大于阈值的像素点置填充色
小于阈值的像素点置填充色,大于阈值的像素点置0
小于阈值的像素点保持原色,大于阈值的像素点置灰色
小于阈值的像素点置0,大于阈值的像素点保持原色
小于阈值的像素点保持原色,大于阈值的像素点置0
import shutil
import os
import cv2
import numpy as np
fileName = '800_600.jpg'
# 新建文件夹,用于存放新生成的阈值图片
save_dir = 'main_img/'
try:
# 递归删除文件夹
shutil.rmtree(save_dir)
except OSError:
pass
# 创建
os.makedirs(save_dir)
# 单通道图片
img = cv2.imread(fileName)
imGray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 生成0~4的对照图片
for type in range(0, 5, 1):
_, thresh = cv2.threshold(src=imGray, thresh=150, maxval=100, type=type)
concat_pic = np.concatenate([imGray, thresh], axis=1)
cv2.imwrite('{0}type={1}.jpg'.format(save_dir, type), concat_pic)