一: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();
推荐阅读
- 人脸识别|【人脸识别系列】| 实现自动化妆
- OpenCV|OpenCV-Python实战(18)——深度学习简介与入门示例
- opencv|图像处理之椒盐噪声的添加与去除
- 人脸识别|【人脸识别系列】| 实现人脸截图保存并编写128维特征向量
- opencv|网络爬虫入门练习
- OpenCV|【OpenCV 完整例程】89. 带阻滤波器的传递函数
- OpenCV|【OpenCV 完整例程】90. 频率域陷波滤波器
- OpenCV|【OpenCV 完整例程】22. 图像添加非中文文字
- OpenCV|【OpenCV 完整例程】91. 高斯噪声、瑞利噪声、爱尔兰噪声
- opencv|python+opencv车道线,实线虚线的检测