1.图片打开与显示

默认导入名称

import cv2

from PIL import Image

import matplotlib.pyplot as plt

import matplotlib.image as mpimg

问题1、cv2读取的图像用plt.imshow显示时颜色不一致。

原理及解决方案

cv2.imread(‘图片位置’)

所读取的图像格式:每个像素为[B,G,R]的形式,通道值默认范围0-255。

# 可以用cvtColor()函数转换:

img = cv2.imread(path)
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
plt.imshow(img)
plt.show()

cv2.imshow('窗口名称', '需要显示的图像' )

显示图像:按图像中每个像素为[B,G,R]的规则将图像显示出来。

#代码格式:

cv2.imshow('gray',image)
cv2.waitKey(0)   # 是一个和键盘绑定的函数,它的作用是等待一个键盘的输入
cv2.destroyAllWindows()  # 销毁我们创建的所有窗口

 mpimg.imread('图片位置')

所读取的图像格式:直接返回numpy.ndarray格式通道顺序是[B,G,R]的形式,通道值默认范围0-255。                         

# 可以用cvtColor()函数转换:
img = mpimg.imread(path)
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
plt.imshow(img)
plt.show()

plt.imshow('图片')

显示图像:按图像中每个像素为[R,G,B]的规则将图像显示出来

Image.open('图片位置')

用PIL的Image导入图片之后会得到一个Image的对象,且为通道顺序是[B,G,R]的形式。

# 代码例子

img = Image.open(path)
img=np.array(img)   # 用np.array()函数转换
cv2.imshow('gray',img)
cv2.waitKey(0)   # 是一个和键盘绑定的函数,它的作用是等待一个键盘的输入
cv2.destroyAllWindows()  # 销毁我们创建的所有窗口
# 可以通过convert("RGB")函数

img = Image.open(path)
img=img.convert("RGB")
img=np.array(img)
plt.imshow(img)
plt.show()

2.将numpy数组保存为图像

    import cv2
    import numpy as np
    cv2.imwrite(imgpath, array)  # imgpath:保存的图片地址,array:numpy数组

3.获取图像分辨率(尺寸)

img = cv2.imread(path)
old_size= img.shape[0:2]  # old_size返回图片原始的(h, w)
h, w, ch = np.shape(img)  # h,w,ch 即图片的高(列)、宽(行)、通道数?

4.图片缩放(修改尺寸)

cv2.resize('输入图片', '输出图片', '输出图片尺寸', '沿x轴、y轴的缩放系数', '插入方式')

INTER_NEAREST

最近邻插值

INTER_LINEAR

双线性插值(默认设置)

INTER_AREA

使用像素区域关系进行重采样。

INTER_CUBIC

4x4像素邻域的双三次插值

INTER_LANCZOS4

8x8像素邻域的Lanczos插值

image = cv2.imread(path)
cv2.resize(image, (width, high)) # width, high:输出图片尺寸

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐