#yyds干货盘点# Windows下Python-openCV学习-------图像处理基本

Posted 玫瑰花店

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点# Windows下Python-openCV学习-------图像处理基本相关的知识,希望对你有一定的参考价值。

本章简明

读取图像: inmread()方法

显示图像: 
          imshow()方法
          waitKey()方法
          destroyAllWindows()方法

保存图像:
          imwrite()方法

获取图像属性:

          shape
          size
          dtype

讲解

读取图像

image = cv2.imread(filename,flags)

功能: 读取图像
参数:
    filename :要读取图像的完整文件名称,只写文件名表示当前项目路径。可使用带路径文件名
    flags : 1 表示读取彩色图像  , 0 表示读取灰度图像。如果读取的是彩蛇图像,此参数设为0,可将其转换为灰度图像。此参数默认为 1

返回值:读取到的图像数据

示例:

import cv2   #包含openCV的包
image = cv2.imread("2.png",1) #不带路径表示当前项目默认路径
image = cv2.imread("D:/python_learn/opencv_learn/2.png",1)#带完整路径
print(image)

运行结果:

这里打印的就是图像的数据,具体是什么后面章节会讲解,这里只需知道这是图片的数据信息即可。
我们已经获得了图片的信息,那么如何将这些信息转换为可视化图像呢?
图像的显示
上章节讲解了如何读取图像信息,这里就简介如何将图像信息打印出来,转化成图像信息。

cv2.imshow(winname,mat)

功能 :显示图像
参数 :
        winname 显示图像窗口的名字
        mat     要显示的图像信息,cv2.imread的返回值
返回值: 无

示例:

import cv2
image = cv2.imread("D:/python_learn/opencv_learn/2.png",1)
cv2.imshow("text",image)#显示图像窗口的名称是text

运行上述代码会发现,图像一闪而过。为什么呢?原因是程序结束了,我们在下面加一个延时看看

import cv2
import time
image = cv2.imread("D:/python_learn/opencv_learn/2.png",1)
cv2.imshow("text",image)
time.sleep(10)

运行发现出现这种情况:

单纯的阻塞并不能实现,所以openCV中引入了waitKey方法。

阻塞

cv2.waitKey(delay)
功能: 阻塞delay时间,如果delay时间内有任何按键按下解除阻塞。如果delay时间内没有按键按下,一直阻塞delay时间结束
参数:
       delay 阻塞时间,单位ms,delay为0或者负数、空值时表示无限等待按键按下
返回值:
       如果有按键按下,返回该按键的ASCII,如果没有按键按下返回-1

加入cv2.waitKey我们在测试一下

import cv2
image = cv2.imread("D:/python_learn/opencv_learn/2.png",1)
cv2.imshow("text",image)
rel=cv2.waitKey(3000)
print(rel)
print("hello world")

不按下按键:


3S内按下enter键

可以看到cv2.waitKey(3000)返回的是13,enter键的ASCII值正是13

销毁图像
就像文件操作一样,如何打开一个文件,操作完毕后肯定要关闭文件。

cv2.destoryAllWindows()
功能:销毁正在显示的所有窗体

示例:

import cv2
image = cv2.imread("D:/python_learn/opencv_learn/2.png",1)
cv2.imshow("text",image)
cv2.waitKey(3000)
cv2.destroyAllWindows()
cv2.waitKey(3000)
print("text")

运行可以看到,前三秒有图像显示,后三秒没有图像显示。

图像的存储

cv2.write(filename,img)
功能:保存图片到指定目录下
参数:
      filename :文件路径
      img : 要保存的图像

示例:将图像抓换为灰度图保存在我E盘下的hello_world文件夹中,图片名称为text.png

import cv2
image = cv2.imread("D:/python_learn/opencv_learn/2.png",0)
cv2.imwrite("E:hello_world/text.png",image)

运行

获取文件属性
在处理图像的过程中,经常需要获取图像的类型、大小等图像属性。openCV提供了:shape、size、dtype三个常用属性

shape :
        如果是彩色图像,获取的是一个包含图像的,水平像素、垂直像素、通道数的数组。
        如果是灰度图像,获取的是一个包含图像的,水平像素、垂直像素的数组

szie:
        获取图像包含的像素个数(像素个数=水平像素x垂直像素x通道数),灰度图像的通道数为1

dtype:
        是获取图像的数据类型

示例:

import cv2
image = cv2.imread("D:/python_learn/opencv_learn/2.png",1)
print("图像的shape属性",image.shape)
print("图像的size属性",image.size)
print("图像的数据类型",image.dtype)

输出:

以上是关于#yyds干货盘点# Windows下Python-openCV学习-------图像处理基本的主要内容,如果未能解决你的问题,请参考以下文章

Windows 下搭建ActiveMQ环境 #yyds干货盘点#

# yyds干货盘点 # 盘点Python列表的一道基础题目

#yyds干货盘点#curl安装

supervisor管理集群(多个tomcat)#yyds干货盘点#

#yyds干货盘点#Windows Server之CA证书服务器

# yyds干货盘点 # 盘点一道Python中的yield生成器的题目