首页 > 编程语言 >python的cv2模块使用

python的cv2模块使用

时间:2023-11-30 11:36:57浏览次数:33  
标签:python cv2 pic3 COLOR 灰度 模块 图像 IMREAD

一.安装CV2(opencv)模块

  pip install opencv-python

二.使用imread读取图片

  使用函数cv2.imread(filepath,flags)读入一副图片

  • filepath:要读入图片的完整路径
  • flags:读入图片的标志
    • cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道。alpha通道代表透明度效果,取值0-1
    • cv2.IMREAD_GRAYSCALE:读入灰度图片,返回黑白图
    • cv2.IMREAD_UNCHANGED:读入完整图片,包括alpha通道,返回彩色图
pic1=cv2.imread("D:/autotest/11.png",cv2.IMREAD_UNCHANGED)
pic2=cv2.imread("D:/autotest/11.png",cv2.IMREAD_GRAYSCALE)
pic3=cv2.imread("D:/autotest/11.png",cv2.IMREAD_COLOR)  

三.使用imshow显示图像

  • cv2.imshow(wname,img):第一个参数(wname)是显示图像的窗口的名字,第二个参数(img)是要显示的图像(imread读入的图像),窗口大小自动调整为图片大小。
  • cv2.waitKey():等待键盘输入,单位为毫秒,即等待指定的毫秒数看是否有键盘输入,若在等待时间内按下任意键则返回按键的ASCII码,程序继续运行。若没有按下任何键,超时后返回-1。参数为0表示无限等待。不调用waitKey的话,窗口会一闪而逝,看不到显示的图片。
  • cv2.destroyAllWindow():销毁所有窗口
  • cv2.destroyWindow(wname):销毁指定窗口
pic3=cv2.imread("D:/autotest/11.png",cv2.IMREAD_COLOR)  #读取文件
cv2.imshow('pic3',pic3)   #显示图片
cv2.waitKey(5000)         #等待时间,单位ms
cv2.destroyAllWindows()    #关闭窗口

四.使用flip翻转图像

    使用函数cv2.flip(img,flipcode)翻转图像

  • img:读取的图像内容
  • flipcode:控制翻转效果,复制图像。
    •   flipcode = 0:沿x轴翻转,上下翻转
    •   flipcode > 0:沿y轴翻转
    •   flipcode < 0:x,y轴同时翻转
pic3=cv2.imread("D:/autotest/11.png",cv2.IMREAD_COLOR)
pic4=cv2.flip(pic3,0)
cv2.imshow('pic3',pic4)
cv2.waitKey(5000)
cv2.destroyAllWindows()

五.使用cvtColor转换颜色

cv2.cvtColor 是 OpenCV 库中的一个函数,用于转换图像颜色。基本语法为:

    cv2.cvtColor(src, code)

参数说明:

  • src:源图像,是一个三通道的图像(例如,BGR)。
  • code:转换的代码,这是一个特定的值,指定了要执行的颜色空间转换。例如,cv2.COLOR_BGR2GRAY 将把一个彩色图像转换为灰度图像。色调H、亮度L、饱和度S、亮度V、A透明度。以下是一些常见的 code 值:
    •   cv2.COLOR_BGR2BGRA:将 BGR 图像转换为 BGRA 图像(添加 Alpha 通道)。
    •   cv2.COLOR_BGR2GRAY:将 BGR 图像转换为灰度图像。
    •   cv2.COLOR_BGR2HSV:将 BGR 图像转换为 HSV 图像。
    •   cv2.COLOR_BGR2Lab:将 BGR 图像转换为 Lab 图像。
    •   cv2.COLOR_BGR2Luv:将 BGR 图像转换为 Luv 图像。
    •   cv2.COLOR_BGRA2BGR:将 BGRA 图像转换为 BGR 图像。
    •   cv2.COLOR_BGRA2GRAY:将 BGRA 图像转换为灰度图像。
    •   cv2.COLOR_BGRA2HSV:将 BGRA 图像转换为 HSV 图像。
    •   cv2.COLOR_BGRA2Lab:将 BGRA 图像转换为 Lab 图像。
    •   cv2.COLOR_BGRA2Luv:将 BGRA 图像转换为 Luv 图像。
    •   cv2.COLOR_GRAY2BGR:将灰度图像转换为 BGR 图像。
    •   cv2.COLOR_GRAY2BGRA:将灰度图像转换为 BGRA 图像(添加 Alpha 通道)。
    •   cv2.COLOR_GRAY2HSV:将灰度图像转换为 HSV 图像。
    •   cv2.COLOR_GRAY2Lab:将灰度图像转换为 Lab 图像。
    •   cv2.COLOR_GRAY2Luv:将灰度图像转换为 Luv 图像。
    •   cv2.COLOR_HSV2BGR:将 HSV 图像转换为 BGR 图像。
    •   cv2.COLOR_HSV2BGRA:将 HSV 图像转换为 BGRA 图像(添加 Alpha 通道)。
  • 返回值:转换后的图像。
pic3=cv2.imread("D:/autotest/11.png",cv2.IMREAD_COLOR)
pic4=cv2.cvtColor(pic3,cv2.COLOR_BGR2GRAY)  #返回黑白图
cv2.imshow('pic3',pic4)
cv2.waitKey(5000)
cv2.destroyAllWindows() 

六.使用putText给图像添加文本

cv2.putText 是 OpenCV 库中的一个函数,用于在图像上绘制文本。它可以将指定的文本绘制在图像上,并可以设置文本的字体、大小、颜色等属性。基本语法为:

    cv2.putText(img, text, org, font, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])
  • img:要绘制文本的图像。
  • text:要绘制的文本字符串。
  • org:文本的起始坐标(即左下角坐标)。
  • font:要使用的字体。
  • fontScale:字体的大小比例,与字体大小有关。
  • color:文本的颜色。
  • thickness:文本线的宽度(如果为负数,则 OpenCV 会自动计算)。
  • lineType:线的类型。
  • bottomLeftOrigin:这个参数是False,坐标系统是从左上角到右下角,如果为True,则是从左下角到右上角。
pic3=cv2.imread("D:/autotest/11.png",cv2.IMREAD_COLOR)
Font=cv2.FONT_HERSHEY_DUPLEX   #使用的字体
pic4=cv2.putText(pic3,"Hello Word",(150,150),Font,1,(0,0,255),2,)   #使用的文本字符为中文时乱码
cv2.imshow('pic4',pic4)
cv2.waitKey(5000)
cv2.destroyAllWindows()

七.使用resize()缩放图像

resize() 是一个常见的函数,用于改变图像或视频的尺寸。用于调整视频的大小的方法是先读取视频帧,然后对每一帧进行大小调整。基本语法为:

  cv2.resize(img, (w,h), interpolation)

  • img:被缩放图片的内容
  • (w,h):缩放后的图像尺寸
  • interpolation:缩放图像的方法
    • cv2.INTER_NEAREST # 最邻近差值法
    • cv2.INTER_LINEAR # 双线性差值法
    • cv2.INTER_AREA # 基于局部像素的重采样法(cv2.INTER_AREA方法能够最大程度保证图像的缩放质量)
    • cv2.INTER_CUBIC # 三次差值法
    • cv2.INTER_LANCZOS4 # 基于8*8像素邻域的Lanczos差值法 
#读取图片内容
pic3=cv2.imread("D:/autotest/11.png",cv2.IMREAD_COLOR)
#对图片进行缩放 pic4=cv2.resize(pic3, (1800, 1600))
#显示缩放前后的图片 cv2.imshow('1111',pic3) cv2.imshow('12',pic4) cv2.waitKey(5000) cv2.destroyAllWindows() 

八.使用image.shape获取图像的维度信息

image.shape 是一个在Python的OpenCV库中常用的属性,用于获取图像的维度信息。对于彩色图像,通常每个像素包含三个通道(红、绿、蓝),而对于灰度图像,只有一个通道。image.shape返回一个元组,表示图像的尺寸。这个元组的元素个数取决于图像是彩色还是灰度。对于彩色图像,元组包含三个元素:高度、宽度和通道数(通常为3,对应红、绿、蓝)。对于灰度图像,元组包含两个元素:高度和宽度。例如,对于一个200x200像素的彩色图像,image.shape返回(200, 200, 3)。对于一个200x200像素的灰度图像,image.shape返回(200, 200)

#读入灰度图片,返回黑白图
pic3=cv2.imread("D:/autotest/11.png",cv2.IMREAD_GRAYSCALE)
num_channels=pic3.shape
print(num_channels)
#输出:(720, 1280)
#使用cv2.IMREAD_UNCHANGED:读入完整图片,包括alpha通道,返回彩色图
pic3=cv2.imread("D:/autotest/11.png",cv2.IMREAD_UNCHANGED)
#使用shape获取维度信息
num_channels=pic3.shape
print(num_channels)
#输出:(720, 1280, 4) 

九.使用cv2.imwrite保存图片

cv2.imwrite 是 OpenCV 库中的一个函数,用于将图像写入文件。但是cv2.imwrite 函数只接受 BGR 格式的图像,而不是 RGB 格式。如果图像是 RGB 格式,需要使用 cv2.cvtColor 将其转换为 BGR 格式,然后再写入文件。基本语法为:

  cv2.imwrite(filename, img)

  • filename:要保存图像的文件名,包括文件格式,如 .jpg、.png 等。
  • img:要写入文件的图像,通常是一个 NumPy 数组。
#读取图片
pic3=cv2.imread("D:/autotest/11.png",cv2.IMREAD_COLOR)
#对读取的图片进行缩放
pic4=cv2.resize(pic3, (1800, 1600))
#将缩放后的图片pic4保存到D:/autotest,名称为13,格式为jpg的图片
cv2.imwrite("D:/autotest/13.jpg",pic4)

  

 

 

 

 

  

标签:python,cv2,pic3,COLOR,灰度,模块,图像,IMREAD
From: https://www.cnblogs.com/qq771293871/p/17866903.html

相关文章

  • 基于Python的BlackJack游戏项目设计与实现——LW
    本篇论文介绍了基于Python的Blackjack游戏的设计和实现。该游戏是一款经典的赌博游戏,玩家可以在游戏中与电脑进行对战。在系统设计方面,本文首先对需求进行了分析,并采用了面向对象的方法进行了系统的设计。在客户端模块设计中,使用了Pygame库进行图形界面的实现,同时采用了多线程技术......
  • Python——第四章:匿名函数
    匿名函数:lambda表达式语法:变量=lambda参数,参数2,参数3....:返回值标准函数的调用deffunc():print(123456)return9999ret=func()print(ret) ......
  • FPGA入门笔记007_A——按键消抖模块设计与验证(状态机、$random、仿真模型、task语法)
    实验现象:每次按下按键0,4个LED显示状态以二进制加法格式加1。每次按下按键1,4个LED显示状态以二进制加法格式减1。知识点:1、testbench中随机数发生函数$random的使用;2、仿真模型的概念1、按键波形分析:按键未按,FPGA管脚检测到高电平。按键按下,FPGA管脚检测到低电平。2、设......
  • Python | 将本地文件上传到远程服务器
    在Python中,可以使用paramiko库来通过SSH进行文件的传输。首先,你需要安装paramiko库,可以使用以下命令进行安装:pipinstallparamiko然后,你可以使用以下Python脚本进行文件传输:此脚本使用SFTP协议进行文件传输。在SFTP的上下文中,你可以使用put方法将本地文件上传到远程服务器。import......
  • 网络音频模块是什么东西
    网络音频模块是一种集成了网络连接功能的设备,用于处理和传输音频信号。这类模块通常包含音频处理芯片、网络接口(例如Wi-Fi或以太网)、控制电路和相关接口,使其能够通过网络连接实现音频数据的传输和处理。以下是网络音频模块可能的功能和用途:音频数据传输:网络音频模块的主要功......
  • 网络音频传输模块有什么用
    网络音频传输模块是一种用于将音频信号通过网络进行传输的设备或模块。它在多个应用领域中发挥重要作用,提供了许多便利和灵活性。以下是网络音频传输模块的一些常见用途:音频流媒体服务:网络音频传输模块可以用于支持音频流媒体服务,允许用户通过互联网即时播放音频内容,如音乐、......
  • 音频网络传输模块
    广州新悦SIP2402V音频网络传输模块具备对SIP协议的全面支持,为用户提供高度可靠和灵活的通信解决方案。其功放输出可选择2*15W或1*40W,确保在不同环境中的音频传输效果。系统还引入了低成本网络音频播放模块,适用于多种场景的语音对讲系统,既满足通信需求又降低了整体成本。 模块......
  • 多python 目录注意要点
    python是根据path路径优先级找执行文件的。pip是在scripts下的,设置path优先级时,两个路径最好一起设置 VScode的prompt下执行的python和编辑环境有可能不一致。 执行:python-mpipinstallxxx能保证pip安装的内容在当前能运行的python版本下。  ......
  • 常用【描述性统计指标】含义(by python)
    统计学有时候会被误解,好像必须有大量的样本数据,才能使统计结果有意义。这会让我们觉得统计学离我们的日常生活很遥远。其实,如果数据的准确度高的话,少量的样本数据同样能反映出真实的情况。比如,很多国家选举时不断做的民意调查,一般做到有效样本1600多份就够了,不管你是几千万人的小......
  • 聪明办法学python-task05
    python要点注释单行注释以#开头多行注释可以用多个#号,还有'''和""".程序员最讨厌的10件事:0:别人的代码不写注释​1:给自己的代码写注释。行与缩进python最鲜明的特色就是不需要使用{},而是通过缩进来代替代码块同一个代码块的......