Py之cv2:cv2库(OpenCV,opencv-python)的简介、安装、使用方法(常见函数、方法等)最强详细攻略
目录
2、Image.open 和cv2.imread 的区别及其转换
相关文章:
Py之cv2:cv2库(OpenCV)的简介、安装、使用方法(常见函数、方法等)最强详细攻略
CV:计算机视觉技术之图像基础知识(一)—以python的cv2库来了解计算机视觉图像基础(傅里叶变换-频域-时域/各种滤波器-线性-非线性-均值-中值-高斯-双边)
CV:计算机视觉图像的基础知识—以python的cv2库来了解计算机视觉图像基础(边缘检测算子+平滑+轮廓标注+形态学+金字塔+傅里叶变换)—代码实现
CV:计算机视觉技术之图像基础知识(一)—以python的cv2库来了解计算机视觉图像基础—代码实现(图像显示+加文本+变换+通道)—图像基础各种操作(函数及案例)
CV:计算机视觉技术之图像基础知识(二)—以python的skimage和numpy库来了解计算机视觉图像基础(图像存储原理-模糊核-锐化核-边缘检测核,进阶卷积神经网络(CNN)的必备基础)
CV:利用python的cv2库实现图像数据增强—随机裁剪、随机旋转、随机hsv变换、随机gamma变换代码实现
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。 OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。
在计算机视觉项目的开发中,OpenCV作为较大众的开源库,拥有了丰富的常用图像处理函数库,采用C/C++语言编写,可以运行在Linux/Windows/Mac等操作系统上,能够快速的实现一些图像处理和识别的任务。此外,OpenCV还提供了Java、python、cuda等的使用接口、机器学习的基础算法调用,从而使得图像处理和图像分析变得更加易于上手,让开发人员更多的精力花在算法的设计上。
1、几点注意事项:
先去官网https://www.lfd.uci.edu/~gohlke/pythonlibs/opencv,下载相应Python版本的OpenCV的whl文件,如本人下载的opencv_python‑3.4.1‑cp36‑cp36m‑win_amd64.whl,然后在whl文件所在目录下,命令 进行安装即可
pip install opencv_python‑3.4.1‑cp36‑cp36m‑win_amd64.whl
pip install opencv-python
最后,检测安装情况
哈哈,大功告成!
pip install opencv-python //Anaconda 环境下安装,先打开Anaconda Prompt,再输入本命令进行安装!
20191128更新记录
Welcome to OpenCV-Python Tutorials’s documentation!
CV:计算机视觉图像的基础知识—以python的cv2库来了解计算机视觉图像基础
cv2.imread(filepath,flags) 读入一张图像
cv2.imshow(wname,img) 显示图像
- cv2.imshow('image',img)
- cv2.waitKey(0) 等待键盘输入,单位为毫秒,即等待指定的毫秒数看是否有键盘输入,若在等待时间内按下任意键则返回按键的ASCII码,程序继续运行。
- 若没有按下任何键,超时后返回-1。参数为0表示无限等待。不调用waitKey的话,窗口会一闪而逝,看不到显示的图片。
- cv2.destroyAllWindow() 销毁所有窗口
- cv2.destroyWindow(wname) 销毁指定窗口
cv2.imwrite(file,img,num) 保存一张图像
img.copy() 图像复制
cv2.cvtColor() 图像颜色空间转换
cv2.resize(image, image2,dsize) 图像缩放:(输入原始图像,输出新图像,图像的大小)
cv2.flip(img,flipcode) 图像翻转,flipcode控制翻转效果。
cv2.warpAffine(img, M, (400, 600)) 图像仿射变换 :平移;裁剪、剪切、旋转、仿射变换,
M、M_crop、M_shear、M_rotate
cv2.putText(img,'text',(50,150) 图像添加文字:(照片,添加的文字,左上角坐标,字体,字体大小,颜色,字体粗细)
- cv2.putText(image, caption, (b[0], b[1] - 10), cv2.FONT_HERSHEY_PLAIN, 1, (255, 0, 0), 1)
- cv2.putText(I,'there 0 error(s):',(50,150),cv2.FONT_HERSHEY_COMPLEX,6,(0,0,255),25)
cv2.rectangle(img, (x,y), (x+w,y+h), (0,255,0), 2) 画出矩行:img原图、(x,y)是矩阵的左上点坐标、(x+w,y+h)是矩阵的右下点坐标、(0,255,0)是画线对应的rgb颜色、2是所画的线的宽度。
cv2.boundingRect(img) 返回图像的四值属性:img是一个二值图,即是它的参数; 返回四个值,分别是x,y,w,h; x,y是矩阵左上点的坐标,w,h是矩阵的宽和高。
图像的基本运算有很多种,比如两幅图像可以相加、相减、相乘、相除、位运算、平方根、对数、绝对值等;图像也可以放大、缩小、旋转,还可以截取其中的一部分作为ROI(感兴趣区域)进行操作,各个颜色通道还可以分别提取及对各个颜色通道进行各种运算操作。
bitwise_and、bitwise_or、bitwise_xor、bitwise_not四个按位操作函数,是将基础数学运算应用于图像像素的处理中。
- bitwise_and、bitwise_or、bitwise_xor、bitwise_not这四个按位操作函数。
- void bitwise_and(InputArray src1, InputArray src2,OutputArray dst, InputArray mask=noArray());//dst = src1 & src2
- void bitwise_or(InputArray src1, InputArray src2,OutputArray dst, InputArray mask=noArray());//dst = src1 | src2
- void bitwise_xor(InputArray src1, InputArray src2,OutputArray dst, InputArray mask=noArray());//dst = src1 ^ src2
- void bitwise_not(InputArray src, OutputArray dst,InputArray mask=noArray());//dst = ~src
Image.open 打开来的图像格式,cv2.imread 读出来是像素格式。
- 1、PIL.Image转换成OpenCV格式:
- import cv2
- from PIL import Image
- import numpy
-
- path = 'F:/File_Python/Resources/face_images/LZT01.jpg'
- img = Image.open(path).convert("RGB").convert("RGB")可不要,默认打开就是RGB
- img.show()
- 转opencv
- img = cv2.cvtColor(numpy.asarray(image),cv2.COLOR_RGB2BGR)
- img = cv2.cvtColor(np.array(img),cv2.COLOR_RGB2BGR)
- cv2.imshow("OpenCV",img)
- cv2.waitKey()
-
- 2、OpenCV转换成PIL.Image格式
- import cv2
- from PIL import Image
- import numpy
-
- img = cv2.imread('F:/File_Python/Resources/face_images/LZT01.jpg') opencv打开的是BRG
- cv2.imshow("OpenCV",img)
- image = Image.fromarray(cv2.cvtColor(img,cv2.COLOR_BGR2RGB))
- image.show()
- cv2.waitKey()
相关应用:CV:利用python的cv2库实现图像数据增强—随机裁剪、随机旋转、随机hsv变换、随机gamma变换代码实现
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
加入交流群
请使用微信扫一扫!