做网站配什么电脑,wordpress关键词描述插件,做教育网站多少钱,做ppt的模板网站有哪些一、概述1、简单介绍OpenCV#xff08;Open Source Computer Vision Library#xff09;是一个开源的计算机视觉库#xff0c;旨在为实时图像处理提供强大的功能。它由Intel开发#xff0c;现由开源社区维护。OpenCV 提供了跨平台的解决方案#xff0c;支持 Windows、Linu…一、概述 1、简单介绍 OpenCVOpen Source Computer Vision Library是一个开源的计算机视觉库旨在为实时图像处理提供强大的功能。它由Intel开发现由开源社区维护。OpenCV 提供了跨平台的解决方案支持 Windows、Linux、macOS、iOS 和 Android 系统适用于各种应用场景 2、OpenCV的主要特点 图像和视频处理OpenCV 提供了强大的图像处理和视频处理功能包括图像读取、写 入、显示图像滤波、变换、边缘检测、轮廓识别等。 计算机视觉包括人脸检测、物体识别、图像分类、特征匹配、跟踪目标等高级应用。 机器学习内置了一些机器学习算法支持分类、回归、聚类等任务。 GPU加速支持基于CUDA的GPU加速能够在处理大量数据时显著提高计算效率。 广泛的应用场景被广泛应用于工业自动化、监控系统、医疗图像处理、无人驾驶等领 域。 3、环境安装 在要使用openCV的环境中输入下面指令
pip install opencv-python 但直接通过以上命令安装对网速要求巨大推荐使用下面的镜像源安装
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python二、使用前的基础理论知识掌握 1、像素 像素是图像的基本单元每个像素存储着图像的颜色、亮度和其他特征。一系列像素 组合到一起就形成了完整的图像 2、通道RGB opencv中常用的是8位图像,大多数彩色和灰度图像使用8位表示每个通道的像素值范 围从0到255其中0代表最黑1表示最白。 日常生活中常见的图像是RGB三原色图。RGB图上的每个点都是由红R、绿 G、蓝B三个颜色按照一定比例混合而成的几乎所有颜色都可以通过这三种颜色按 照不同比例调配而成。在计算机中RGB三种颜色被称为RGB三通道每个通道的取值都 是0-255根据这三个通道存储的像素值来对应不同的颜色。 3、图像存储 在OpenCV中无论是读取还是创建图像结果都是一个NumPy数组。 a. 彩色图像三维数组 b. 灰度图像二维数组 图像本质上是像素值的二维或三维矩阵彩色图像 a. 形状图像的尺寸由其高、宽和通道数决定。 彩色图像返回一个包含三个值的元组h, w, c 灰度图返回一个包含两个值的元组 hw因为灰度图只有一个通道 b. 数据类型图像中的每个像素值的数据类型决定了可以存储的最大值 c. 像素表示 单通道图像灰度图像每个像素由一个数值表示代表该点的亮度。值 越低接近0颜色越暗值越高接近255颜色越亮。 多通道图像彩色图像 在OpenCV中默认情况下彩色图像是以BGR 蓝-绿-红顺序存储三、基础操作cv2.imshow(图片名, 读取的图片)显示图片注意在调用显示图像的API后要调用cv2.waitKey(0)给图像绘制留下时间否则窗口会出现无响应情况并且图像无法显示出来cv2.waitkey(n): 图片显示时长n 的单位为毫秒当 n 0 时图片一直显示cv2.destroyAllWindows(): 关闭所有显示窗口释放资源 1、读取图片 cv2.imread(path[,读取方式])
img cv2.imread(../cat/cat_3.jpg)
#将图片转化成灰度图
img1 cv2.imread(../cat/cat_3.jpg,cv2.IMREAD_GRAYSCALE)./当前目录../上级目录示例 2、保存图像 cv2.imwrite(path, img)
cv2.imwrite(../data/f_cat_4.jpg,img)(代码解析将 img 图片保存成指定的data目录下的 f_cat_4.jpg ) 3、创建黑白图像 3.1 全黑图像 使用np.zeros()创建全黑图像
numpy.zeros((height,width,channels),dtypenp. uint8) 3.2 全白图像
np.full((h, w, c),fill_value,dtype np.uint8) (fill_value 255 时就是全白图像) 拓展也可以通过下面这种方法把全黑图像转换成全白图像
black np.zeros((360,480,3),dtype np.uint8)
cv2.imshow(white,black)black[:,:,:] 255
cv2.imshow(white1,black)black[:,:] 255
cv2.imshow(white2,black)black[:] 255
cv2.imshow(white3,black) 4、图片裁切 Opencv中 图像的裁切其实就是对图像的数组形式进行切片用于从图像中提取一个 子区域矩形区域注意先切高后切宽
img[y:yh,x:xw]的含义如下x子区域左上角的x坐标y子区域左上角的y坐标w子区域的宽度h子区域的高度 img[y:yh,x:xw]提取的是从(x,y)开始高度为h宽度为w的矩形区域 5、图像大小调整 cv2.resize是Opencv库中用于调整图像大小的函数在图像处理中很常用特别是在 要对图像进行缩放以适应不同需求时
cv2.resize(img,dsize)
#img输入图像通常是二维或三位NumPy数组。
#dsize输出图像的尺寸是一个二元组(w,h) 6、读取视频 cap cv2.VideoCapture(path) (path: 视频流资源路径, 设置为 0 时代表从默认摄像头捕获视频流 ) retframe cap.read() (返回值cap调用read()方法得到一个布尔值和一帧图像布尔值表示是否成功读取到 帧如果为False可能是因为视频结束或读取失败如果为Trueframe则是当前帧的 图像数据 )示例参考代码四、图像绘制 1、绘制直线 cv2.line()
cv2.line(img,start,end,color,thickness)#img要绘制直线的图像#start、end直线的起点和终点#color直线的颜色对于彩色图像使用 BGR 格式指定颜色#thickness线条宽度示例 2、绘制矩形 cv2.rectangle()
cv2.rectangle(img,leftupper,rightdown,color,thickness)#img要绘制矩形的图像#leftupper、rightdown矩形的左上角和右下角坐标#color线条的颜色#thickness线条的宽度 示例 3、绘制圆形 cv2.circle()
cv2.circle(img,centerpoint,r,color,thickness)#img要绘制圆形的图片#centerpoint、r圆心和半径#color线条颜色#tnickness线条宽度为-1时生成闭合图案并填充颜色示例