图片扩展---基于opencv-python实现
2018-01-17 13:19
696 查看
目标: 将一张长方形图片扩展成一张正方形图片,例如: 200x300x3的一张图片扩展成一张300x300x3的图片,填充部分使用白色.
代码:
import cv2 import os imglist = os.listdir('.') os.mkdir('./img') for item in imglist: if item.endswith('.jpg'): src = os.path.join(os.path.abspath('.'), item) img = cv2.imread(src) shape = max(img.shape) high = img.shape[0] length = img.shape[1] top = int((shape - high) / 2) bottom = shape - high - top left = int((shape - length) / 2) right = shape - length - left newimg = cv2.copyMakeBorder( img, top, bottom, left, right, cv2.BORDER_CONSTANT, value=[ 255, 255, 255]) cv2.imwrite("./img/" + item, newimg)
范例:
原图尺寸: (350, 277, 3)
扩展后图片尺寸: (350, 350, 3)
讨论:
cv2.copyMakeBorder(src,top, bottom, left, right ,borderType,value)
src:源图像
top,bottem,left,right: 分别表示四个方向上边界的长度
borderType: 边界的类型有以下几种:
BORDER_REFLICATE # 直接用边界的颜色填充, aaaaaa | abcdefg | gggg BORDER_REFLECT # 倒映,abcdefg | gfedcbamn | nmabcd BORDER_REFLECT_101 # 倒映,和上面类似,但在倒映时,会把边界空开,abcdefg | egfedcbamne | nmabcd BORDER_WRAP # 类似于这种方式abcdf | mmabcdf | mmabcd BORDER_CONSTANT # 常量,增加的变量通通为value色 [value][value] | abcdef | [value][value][value]
相关文章推荐
- python+opencv实现基于图片序列的三维重建
- 基于python3 OpenCV3实现静态图片人脸识别
- Python实现将照片变成卡通图片的方法【基于opencv】
- Python基于pygame实现图片代替鼠标移动效果
- python 调用摄像头,基于opencv 的人脸检测实现
- 基于vs2010+opencv2.4.8实现----将三通道RGB图片分别按R,G,B三个不同分量输出显示
- Python基于pygame实现图片代替鼠标移动效果
- 基于python:opencv简单图片操作
- 边缘检测︱基于 HED网络TensorFlow 和 OpenCV 实现图片边缘检测
- 1 用python进行OpenCV实战之用OpenCV3实现图片载入、显示和储存
- 【Python_OpenCv】笔记1:基于Python和OpenCv的图片的加载,显示和图片的保存
- 基于python、dlib和opencv的200行代码实现的换脸
- Python实现Opencv图片画rectangle
- 通过OpenCV将随机数转换成图片 Python实现
- 基于Python实现matplotlib中动态更新图片(交互式绘图)
- Python实现更改图片尺寸大小的方法(基于Pillow包)
- python实现基于两张图片生成圆角图标效果的方法
- python-opencv实现切变换,不裁减图片
- 基于OpenCV3实现一个窗口显示若干张图片
- Python基于OpenCV实现视频的人脸检测