01-opencv-python-图像的读取、保存、显示

目录

1、img = cv2.imread(img_path,flag)

2、cv2.imshow(window_name,img)

3、key = cv2.waitKey(millseconds) & 0xFF

4、cv2.destroyAllWindows(window_name)

5、cv2.imwrite(img_save_path_and_name,img)

6、image = cv2.cvtColor(img ,flag)

建议:

代码实例1:

代码实例2(matlibplot):



1、img = cv2.imread(img_path,flag)

  • img_path:图片的路径,错误的话就返回None
  • flag:cv2.IMREAD_COLOR(读取彩色图片,图片的透明性被返回,为默认参数,也可传入1)
  • flag:cv2.IMREAD_GRAYSCALE(按灰度模式读取图片,也可传入0)
  • flag:cv2.IMREAD_UNCHANGED(读取图像包括alpha通道,也可传入-1)

2、cv2.imshow(window_name,img)

  • window_name:显示图片窗口的名字
  • img:显示图片的对象
  • 可以指定多个窗口名称,显示多张图片

3、key = cv2.waitKey(millseconds) & 0xFF

  • 键盘绑定事件,阻塞监听键盘按键,返回一个数字(每个按键对应一个ascll码)
  • millseconds:传入的时间(毫秒数),在该时间里面等待键盘按键,到时间直接关闭窗口;当参数为0时,会一直等待

4、cv2.destroyAllWindows(window_name)

  • window_name:需要关闭窗口的名字,没有的话就全部关闭

5、cv2.imwrite(img_save_path_and_name,img)

  • img_save_path_and_name:保存文件的路径包括文件名和格式
  • img:文件保存的对象

6、image = cv2.cvtColor(img ,flag)

  • 对读入的图片进行处理
  • img:处理图片的对象
  • flag:主要有:BGR和灰度图的转换使用 cv2.COLOR_BGR2GRAY
  • flag:主要有:BGR和HSV的转换使用 cv2.COLOR_BGR2HSV,HSV空间比在BGR空间中更容易表示一个特定的颜色

使用这个代码可以知道所有的flag

import cv2
import numpy as np

flags = [i for i in dir(cv2) if i.startswith('COLOR_')]

print(flags)

建议:

对于窗口显示,你还是可以先创建一个窗口,之后再加载一个图片。在这种情况下,你可以决定窗口是否可以调整大小。但是,应当注意的是,这个函数的意思是:你已经完成对一个图片的处理了,然后在最后显示的时候是把整张图片都输出来的,要是和原来的像素值对不上的话,就会当场压扁或者拉长,不会对图片进行截取。

当图像的维度太大或者添加轨迹条时,会很有用。

使用到的函数是 :

cv2.namedWindow( image_window_name , cv2.WINDOW_NORMAL )

cv2.namedWindow('image',cv2.WINDOW_NORMAL)
cv2.resizeWindow('image',200,500)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

代码实例1:

import cv2

img = cv2.imread('head.png')
img_grey = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imshow('img',img)
cv2.imshow('img_grey',img_grey)
key = cv2.waitKey(0) & 0xFF
#一般是64位系统的话最好加上 & 0xFF
if key == ord('q'):
#或者这里直接把ord(‘q’)变成27(ascll码表示的数字的)
    print(key)
    cv2.destroyAllWindows()
elif key == ord('b'):
    print(key)
    cv2.imwrite('head.jpg',img_grey)

Python的位运算

键盘、鼠标各键对应的ASCII码值

 

代码实例2(matlibplot):

#coding:utf-8

import cv2
import matplotlib.pyplot as plt

img = cv2.imread('head.png')
#读取图片(cv2默认读入BGR格式)
img_bgr_grey = cv2.imread('head.png',0)
#读取图片(BRG的灰度格式)
img_rgb = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
#将BGR格式的图片转化成RGB格式

plt.subplot(141)
plt.title('BGR')
plt.imshow(img)

plt.subplot(142)
plt.title('BGR(grey)')
plt.imshow(img_bgr_grey)

plt.subplot(143)
plt.title('RGB')
plt.imshow(img_rgb)

plt.subplot(144)
plt.title('RGB(grey)')
plt.imshow(img_bgr_grey , cmap='gray',interpolation='bicubic')
#bicubic interpolation:[数] 双三次插值

#要是不想要坐标系,就加上plt.xticks([]),plt.yticks([])

plt.show()

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值