图像处理|基于OpenCV的形态学操作(一)(图片读取,尺寸调整,裁剪)

一:OpenCV简介 OpenCV是一个计算机视觉库,其中包含了图像处理与图像识别等等算法。
现在我们要进行的图像的形态学操作均基于OpenCV进行。
二:安装与导入 2.1 安装 使用pip进行安装,命令如下:

pip install [--user] opencv-python

2.2 导入
import cv2;


三:图像的读取、尺寸调整、裁剪 在这里需要注意的是cv2对彩色图像的读取是以BGR格式读取的,而matplotlib.pyplot.imshow的显示是以RGB格式显示的,因此很多结合matplot和cv2初次使用的人都会出现有色差问题。
好了,现在直接上代码吧,图像读取部分允许多中读取方式:灰度图、RGB、绿\红\蓝单一通道
import cv2; import numpy as np; # resize def resize(img,x=600,y=400): # img = cv2.resize(img,None,fx=size,fy=size,interpolation=cv2.INTER_LINEAR); # 该形式表示为尺寸调整为原尺寸(x,y)的(fx*x,fy*y)img = cv2.resize(img,(x,y),interpolation=cv2.INTER_AREA); # 该形式则是调整到直接给出的尺寸(x,y) return img; def cut(img,xsize,ysize): # 裁剪到感兴趣区域 # size=(min,max) img = img[ysize[0]:ysize[1],xsize[0]:xsize[1]]; # 读取图片,返回RGB模式图 def imread(filename,*,flags=None,channel=None): # cv2.imread(filename,flags)flags:0:gray level1:colormap,BGR: [blue,green,red] if flags is None: img = cv2.imread(filename); # 读取BGR格式 if channel is None: img = img[:,:,[2,1,0]]; # 转换成RGB格式 elif channel == 'red':# 红色通道 img = img[:,:,2]; elif channel == 'green':# 绿色通道 img = img[:,:,1]; elif channel == 'blue':# 蓝色通道 img = img[:,:,0]; else: img = cv2.imread(filename,flags=flags); return img;

四:图片显示 图片的显示可以有多种方式:
基于cv2的,基于matplotlib的:
cv2.imshow() :以BGR格式显示
【图像处理|基于OpenCV的形态学操作(一)(图片读取,尺寸调整,裁剪)】plt.imshow():以RGB格式显示
import cv2; import matplotlib.pyplot as plt; img=cv2.imread('filename',flags=0); # 以灰度图读取# 使用cv2显示图片 cv2.imshow('window_fig_name',img); cv2.waitKey(); # 使用matplotlib plt.imshow(img,'gray'); #以灰度图显示 plt.title('title'); plt.show();


    推荐阅读