Py之cv2:cv2库(OpenCV,opencv-python)的简介、安装、使用方法(常见函数、方法等)最强详细攻略(二)

简介: Py之cv2:cv2库(OpenCV,opencv-python)的简介、安装、使用方法(常见函数、方法等)最强详细攻略

安装OpenCV的的两种方法


1、几点注意事项:


安装的时候是 opencv_python,但在导入的时候采用 import cv2。

因为OpenCV依赖一些库,可以在本博客中查找一些依赖库的安装方法,例如安装Numpy方法等,本博客应有尽有!

T1、使用whl文件法


先去官网https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv,下载相应Python版本的OpenCV的whl文件,如本人下载的opencv_python‑3.4.1‑cp36‑cp36m‑win_amd64.whl,然后在whl文件所在目录下,命令 进行安装即可

image.png

pip install opencv_python‑3.4.1‑cp36‑cp36m‑win_amd64.whl



T2、直接命令法  


pip install opencv-python  

image.png


最后,检测安装情况


image.png


哈哈,大功告成!


T3、Anaconda 环境下安装


pip install opencv-python      //Anaconda 环境下安装,先打开Anaconda Prompt,再输入本命令进行安装!


image.png

image.png


20191128更新记录


image.png



OpenCV常见函数、方法


Welcome to OpenCV-Python Tutorials’s documentation!

CV:计算机视觉图像的基础知识—以python的cv2库来了解计算机视觉图像基础


0、基本库函数


cv2.imread(filepath,flags)     #读入一张图像


filepath:要读入图片的完整路径

flags:读入图片的标志

cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道

cv2.IMREAD_GRAYSCALE:读入灰度图片

cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道

cv2.imshow(wname,img)     #显示图像


第一个参数是显示图像的窗口的名字

第二个参数是要显示的图像(imread读入的图像),窗口大小自动调整为图片大小

cv2.imshow('image',img)

cv2.waitKey(0)   #等待键盘输入,单位为毫秒,即等待指定的毫秒数看是否有键盘输入,若在等待时间内按下任意键则返回按键的ASCII码,程序继续运行。

#若没有按下任何键,超时后返回-1。参数为0表示无限等待。不调用waitKey的话,窗口会一闪而逝,看不到显示的图片。

cv2.destroyAllWindow()     #销毁所有窗口

cv2.destroyWindow(wname)   #销毁指定窗口

cv2.imwrite(file,img,num)    #保存一张图像


第一个参数是要保存的文件名

第二个参数是要保存的图像。可选的第三个参数,它针对特定的格式:对于JPEG,其表示的是图像的质量,用0 - 100的整数表示,默认95。

第三个参数表示的是压缩级别。默认为3.

img.copy()    #图像复制



cv2.cvtColor()      #图像颜色空间转换


img2 = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)   #灰度化:彩色图像转为灰度图像

img3 = cv2.cvtColor(img,cv2.COLOR_GRAY2RGB)   #彩色化:灰度图像转为彩色图像

# cv2.COLOR_X2Y,其中X,Y = RGB, BGR, GRAY, HSV, YCrCb, XYZ, Lab, Luv, HLS

cv2.resize(image, image2,dsize)     #图像缩放:(输入原始图像,输出新图像,图像的大小)

cv2.flip(img,flipcode)                       #图像翻转,flipcode控制翻转效果。


flipcode = 0:沿x轴翻转;flipcode > 0:沿y轴翻转;flipcode < 0:x,y轴同时翻转

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是矩阵的宽和高。


1、图像基本运算


    图像的基本运算有很多种,比如两幅图像可以相加、相减、相乘、相除、位运算、平方根、对数、绝对值等;图像也可以放大、缩小、旋转,还可以截取其中的一部分作为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

bitwise_and():是对二进制数据进行“与”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“与”操作,1&1=1,1&0=0,0&1=0,0&0=0

bitwise_or():是对二进制数据进行“或”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“或”操作,1|1=1,1|0=0,0|1=0,0|0=0

bitwise_xor():是对二进制数据进行“异或”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“异或”操作,1^1=0,1^0=1,0^1=1,0^0=0

bitwise_not():是对二进制数据进行“非”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“非”操作,~1=0,~0=1

2、Image.open 和cv2.imread 的区别及其转换


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变换代码实现


 


相关文章
|
1月前
|
机器学习/深度学习 存储 数据挖掘
Python图像处理实用指南:PIL库的多样化应用
本文介绍Python中PIL库在图像处理中的多样化应用,涵盖裁剪、调整大小、旋转、模糊、锐化、亮度和对比度调整、翻转、压缩及添加滤镜等操作。通过具体代码示例,展示如何轻松实现这些功能,帮助读者掌握高效图像处理技术,适用于图片美化、数据分析及机器学习等领域。
73 20
|
4天前
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
29 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
28天前
|
测试技术 Python
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
106 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
|
2月前
|
XML JSON 数据库
Python的标准库
Python的标准库
185 77
|
2月前
|
XML JSON 数据库
Python的标准库
Python的标准库
71 11
|
2月前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
105 8
|
2月前
|
安全 API 文件存储
Yagmail邮件发送库:如何用Python实现自动化邮件营销?
本文详细介绍了如何使用Yagmail库实现自动化邮件营销。Yagmail是一个简洁强大的Python库,能简化邮件发送流程,支持文本、HTML邮件及附件发送,适用于数字营销场景。文章涵盖了Yagmail的基本使用、高级功能、案例分析及最佳实践,帮助读者轻松上手。
88 4
|
4月前
|
计算机视觉
Opencv学习笔记(三):图像二值化函数cv2.threshold函数详解
这篇文章详细介绍了OpenCV库中的图像二值化函数`cv2.threshold`,包括二值化的概念、常见的阈值类型、函数的参数说明以及通过代码实例展示了如何应用该函数进行图像二值化处理,并展示了运行结果。
943 0
Opencv学习笔记(三):图像二值化函数cv2.threshold函数详解
|
5月前
|
算法 计算机视觉
opencv图像形态学
图像形态学是一种基于数学形态学的图像处理技术,它主要用于分析和修改图像的形状和结构。
76 4
|
5月前
|
存储 计算机视觉
Opencv的基本操作(一)图像的读取显示存储及几何图形的绘制
本文介绍了使用OpenCV进行图像读取、显示和存储的基本操作,以及如何绘制直线、圆形、矩形和文本等几何图形的方法。
Opencv的基本操作(一)图像的读取显示存储及几何图形的绘制

热门文章

最新文章

推荐镜像

更多