Opencv 学习日志(图片 读,写, 保存, 展示)

目标:

  1. 学习使用OpenCV读写图片
  2. 学习使用OpenCV保存图片
  3. 学习使用OpenCV和Matplotlib展示图片

1.读图片

使用 cv2.imread(img_path,mode)函数读取图片

  • cv2.IMREAD_COLOR : 默认选项 ,加载图像时忽略透明度,mode = 1;
  • cv2.IMREAD_GRAYSCALE : 加载灰度值图像,mode = 0;
  • cv2.IMREAD_UNCHANGED : 加载包含alpha通道的图像,mode = -1.
import numpy as np
import cv2

# 用灰度值模式加载图片
img = cv2.imread('1.jpg',0)

注:如果加载路径出错,加载函数不会有任何提示,但是print(img)会返回None。

2.展示图片

使用cv2.imshow(img_show_name,img)展示图片,窗口会自适应图片大小。

cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

cv2.waitkey控制显示窗口时间,单位是毫秒。 cv2.destroyAllWindows()销毁所有创建的窗口。 cv2.destroyWindows(img_show_name)销毁特定名字的窗口。

也可以先创建窗口再加载图像:

cv2.namedWindow('image', cv2.WINDOW_AUTOSIZE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
  • cv2.namedWindow(img_show_name,mode)函数 创建一个可以放图片的窗口。
  • cv2.WINDOW_AUTOSIZE参数会设置显示窗口适应图片尺寸,使用cv2.WINDOW_NORMAL参数可以自由缩放图片窗口。

3.写入图片

用cv2.imwrite(img_name,img)函数写入图片。

import numpy
import cv2

img = cv2.imread('3.jpg',1)
cv2.imwrite('1.jpg',img)

例子:读,写,展示,关闭

import numpy as np
import cv2

img = cv2.imread('messi5.jpg',0)
cv2.imshow('image',img)
k = cv2.waitKey(0)
if k == 27:         # 等ESC键关闭窗口
    cv2.destroyAllWindows()
elif k == ord('s'): # 等s键关闭窗口
    cv2.imwrite('messigray.png',img)
    cv2.destroyAllWindows()

4.使用Matplotlib展示图片

import numpy as np
import cv2
from matplotlib import pyplot as plt

img = cv2.imread('3.jpg',0)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([]) 
plt.show()

注:opencv默认使用BGR模式读取图片数据矩阵,matplotlib默认使用RGB.

转载于:https://my.oschina.net/clgo/blog/1576596

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值