首页 > 其他分享 >计算机视觉1:cv2模块函数学习

计算机视觉1:cv2模块函数学习

时间:2024-08-13 19:25:02浏览次数:12  
标签:窗口 函数 img cv2 flags 模块 视觉 滑动 cv

cv2模块函数学习

import cv2 as cv  (下文同一用cv)

1.cv.imread()

cv.imread(filename[, flags])  ->  retval

其中,参数filename表示要读取得图像得文件名,flags表示读取模式,取值如下:

  • flags = 2,表示载入的图像深度为16位或者32位,就返回对应深度的图像,否者转换为8位图像再返回。
  • flags = 1,表示图像转换位彩色图像(RGB,3通道)。
  • flags = 0,表示始终将图像转换成灰度图,即返回灰度图像,1通道。
  • flags = -1,表示不加改变地载入原图。

img = cv.imread(“yd.igp”) 

利用函数读取文件yd.jpg,该文件位于工程目录下,也可以使用绝对路径,如下:

img = cv.imread("d:yd.jpg")

imread的文件路径不支持中文路径,如果要支持中文路径,就可以用函数imdecode。

2.cv.imshow()

imshow(winname, mat)  -> None 

其中,参数winname表示显示的窗口名

把图片显示在窗口中,例如:

cv.imshow("Hello,python opencv",{name})   

解释:Hello,python opencv是显示的窗口名,{name}可以是上面的img,代指读取图像的名称。

3.cv.waitKey()

waitKey([delay]) →  retval

解释:参数delay是延时值,单位为ms,默认0,永久延时,一直等待,直到用户按键。

4.cv.destroyWindow()和cv.destroyAllWindows()

destroyWindow(winname)   →  None

解释:参数winname是要销毁窗口的名称

destroyAllWindows()  →  None

解释:waitKey结束后调用destroyAllWindows函数销毁所有窗口。

5.cv.imdecode()

cv.imdecode(buf, flags)   ->  retval

其中buf是存放图像数据地内存缓存,通常用字节数组或向量地形式表示:flags地含义同imread函数地flags参数。

cv.imdecode()函数从内存中读取图像,经常和numpy.fromfile()函数搭配使用。例如;

src1 = cv.imread("p1.jpg")

src2 = cv.imdecode(numpy.fromfile("山水.jpg",dtype = numpy.uint8),-1)

np.fromfile()函数是支持中文路径地,它通过读取文件在内存中构造数组数据,这样imdecode就能在内存中获得数组数据了,继而进行解码。

 6.cv,addWeighted()

dst = cv.addWeighted(src1,alpha,src2,beta,0.0,0)   将src1图1和src2图2线性混合

cv.addWeighted()函数是将两幅相同大小、相同类型的图片进行融合,第二个参数alpha表示第一幅图片所占的权重,第四个参数beta表示第二幅图片所占的权重。权重越大,图片显示得越多。

7.cv.line()

cv.line(image, start_point, end_point, color, thickness)

  • image: 要处理的图像。
  • start_point: 图像的起始位置,(x坐标, y坐标)
  • end_point: 图像的终止位置,(x坐标, y坐标)
  • color:画线的线条颜色(0,0,255)红色
  • thickness: 线条的粗细,单位:像素

8.cv.imwrite()

imwrite(filename, img[, params])  ->  retval

一般写法为:cv.imwrite(‘test.jpg’, img)

解释:img是图像文件,test.jpg代表把这个img图像文件命名成test.jpg。

9.cv.namedWindow()

namedwindow(winname[,flags]) →  None

解释:其中参数winname表示新建的窗口名称,随便取;flags表示窗口的标识(一般默认为cv.WINDOW_AUTOSIZE,表示窗口大小自动适应图片大小,并且不可手动更改;cv.WINDOW_NORMAL表示用户可以改变这个窗口大小;cv.WINDOW_OPENGL窗口创建的时候会支持OpenGL)

10.cv.resizeWindow()

cv.resizeWindow(winname, width, height)    →   None

解释:参数winname是要调整尺寸的窗口的标题;width是调整后的窗口宽度;height是调整后的窗口高度。

11.cv.setMouseCallback()

setMouseCallback(windowName, onm ouse, param = None)  →  None

解释:参数windowName表示窗口的名字;onMouse是鼠标事件相应的回调函数指针;param传给回调函数的可选参数。

12.cv.circle()

cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]])

解释参数说明:

  • img:输入的图片或图像
  • center:圆心位置
  • radius:圆的半径
  • color:圆的颜色
  • thickness:圆形轮廓的粗细(如果为正)。负厚度表示要绘制实心圆。
  • lineType: 圆边界的类型。
  • shift:中心坐标和半径值中的小数位数。

代码实例:

# 画圆函数,参数分别代表原图、坐标、半径、颜色、线宽(若为-1,则表示填充)
cv.circle(img, (x, y), 20, 255, -1)

13.cv.createTrackbar()创建滑动条

函数声明:

CreateTrackbar(trackbarName, windowname, value, count, onChange)  →  None

  • trackbarName是滑动条的名称;
  • windowName是滑动条将要添加到父窗口的名称...
  • value是一个指向整数的指针,这个整数值会随着滑动扭的移动自动变化;
  • count是滑动条可以滑动的最大值;
  • onChange是一个指向回调函数的指针,当滑动扭移动时回调函数就会自动调用。

14.cv.setTrackbarPos()设置滑动条位置

函数声明:

SetTrackbarPos(trackbarname, windowname, pos)  →  None

  • trackbarName是滑动条的名称;
  • windowName是滑动条将要添加到父窗口的名称..
  • pos表示设置的滑动块的位置

15.cv.getTrackbarPos()获取滑动条位置

函数声明:

GetTrackbarPos(trackbarname, windowname)  →  retval

  • trackbarName是滑动条的名称;
  • windowName是滑动条将要添加到父窗口的名称..

ps:正在努力学习中,为待完成...

标签:窗口,函数,img,cv2,flags,模块,视觉,滑动,cv
From: https://blog.csdn.net/KingGodZ/article/details/141123879

相关文章

  • 计算机视觉2:NumPy模块函数学习
    NumPy是一个运行速度非常快的数学库,主要用于数组计算,包含一个强大的N维数组对象ndarray、广播功能函数、整合C/C++/Fortran代码的工具和线性代数、傅里叶变换、随机数生成等功能。将NumPy包引入,没有的话需要先安装。importnumpyasnp一、ndarray对象NumPy最重要的一个......
  • 24.python模块
    python中的模块(一)模块的介绍1、python中模块:模块也是一个python文件,也叫.py文件2、一个模块中包含:类、函数、变量、方法等3、模块的结构:4、一个模块能够有逻辑的组织python的代码段二、模块的导入1、import模块名importtimeprint(1)time.sleep(5)print(2)2、fro......
  • Python 开发环境的准备以及一些常用类库模块的安装
    在学习和开发Python的时候,第一步的工作就是先准备好开发环境,包括相关常用的插件,以及一些辅助工具,这样我们在后续的开发工作中,才能做到事半功倍。下面介绍一些Python开发环境的准备以及一些常用类库模块的安装和使用的经验总结,供大家参考了解。1、开发VScode的安装及相关准备在......
  • 【SPIE出版】第四届计算机视觉、应用与算法国际学术会议(CVAA 2024)
    计算机视觉、应用与算法的领域,一直在飞速发展,第四届计算机视觉、应用与算法国际学术会议(CVAA2024) 将汇聚世界各地的顶尖学者、研究人员和企业代表,共同分享和交流计算机视觉在各个领域的最新研究成果、技术突破和产业应用。我们希望本次会议的成果能对计算机科学领域的知识做......
  • Linux设备驱动——模块的构造、运行与设计 与众不同的hello world与点灯
    编写一个Linux下的设备驱动,首先要准备好对应内核版本的内核源码树文件。该系列的全部文章都以嵌入式系统的ARM-Linux的环境进行阐述,并以交叉编译的方式在主机Ubuntu20.04系统上编译和ARM开发板上跑测 (E2000Q、H616、或者IMX6ULL看情况交叉着使用) 关于交叉编译的配置,以往......
  • YOLOv8开源揭秘:AI视觉技术在智能设备与系统全景应用
    目录一、引言二、YOLOv8模型简介三、YOLOv8的功能特性四、YOLOv8应用场景五、代码示例示例一:对图像进行目标检测示例二:对视频进行目标检测示例三:批量处理图像文件夹示例四:自定义模型进行目标检测示例五:实时摄像头目标检测示例六:获取目标检测的详细信息六、结语一......
  • Python中yaml模块的使用教程
    一、yaml文件介绍yaml是一个专门用来写配置文件的语言。1.yaml文件规则区分大小写;使用缩进表示层级关系;使用空格键缩进,而非Tab键缩进缩进的空格数目不固定,只需要相同层级的元素左侧对齐;文件中的字符串不需要使用引号标注,但若字符串包含有特殊字符则需用引号标注;注释标识......
  • Python time模块与datetime模块的区别
    时间方面的编程在开发过程中是很常见的,而Python提供了datetime和time这两个关于时间的模块。接下来,我们将讨论这两个模块中的函数有什么区别。time模块:如果你想要获取当前的本地时间,那么首先你需要运行time.time()来获取当下的时间戳。importtime#获取目前的时间戳ti......
  • 多模块 Spring 项目构建
    在一个多模块的Spring项目中,父模块通常被定义为一个pom.xml文件,包含所有子模块的公共配置、依赖和插件。子模块通过继承父模块的pom.xml文件,来共享和管理这些公共依赖和版本信息。实现步骤创建父模块(ParentModule):在父模块的pom.xml中,定义所有的依赖管理和版本控制......
  • 推动视觉AI边界,智象未来HiDream荣登全球技术先锋榜单
    近日,世界经济论坛“全球技术先锋”荣誉榜单正式揭晓,智象未来HiDream凭借尖端技术成就入选。智象未来HiDream成立于2023年3月,是一家专注于多模态AIGC技术应用的公司,由加拿大工程院外籍院士IEEE/IAPR/CAAIFellow梅涛博士创立。回顾过往,众多知名企业,如Airbnb、Google、Tw......