img=crop_image(cv2.resize(img, None, fx=1, fy=1, interpolation=cv2.INTER_CUBIC),new_height,new_width)
mini= cv2.resize(cv2.copyMakeBorder(img, P_A, P_A, P_A, P_A, cv2.BORDER_REPLICATE), (150, 150))
其中有将矩阵转Image、Image转矩阵两个过程。
def crop_image(re_img,new_height,new_width):
re_img=Image.fromarray(np.uint8(re_img))
width, height = re_img.size
left = (width - new_width)/2
top = (height - new_height)/2
right = (width + new_width)/2
bottom = (height + new_height)/2
crop_im = re_img.crop((left, top, right, bottom)) #Cropping Image
crop_im = np.asarray(crop_im)
return crop_im
new_width = 150 #Enter the crop image width
new_height = 150 #Enter the crop image height
img = cv2.imread("learn/cats/cat.3.jpg")
img=cv2.resize(img,(150,150))
P_A=50
img=crop_image(cv2.resize(img, None, fx=1, fy=1, interpolation=cv2.INTER_CUBIC),new_height,new_width)
plt.imshow(img)
plt.title('cat')
plt.show()
python放大并按图片中心剪切、放大缩小原始大小放大并剪切后放大img=crop_image(cv2.resize(img, None, fx=1, fy=1, interpolation=cv2.INTER_CUBIC),new_height,new_width)缩小mini= cv2.resize(cv2.copyMakeBorder(img, P_A, P_A, P_A, P_A, cv2.BORDER_REPLICATE), (150, 150)
上一篇可以看到图片大小是1920*1080*3,现在假如剪切成1000*1000*3的图片,当然也可以读取灰度图。from skimage import io
picture = io.imread("C:/Users/huyuan/Pictures/Camera Roll/1.jpg")# 图片路径
io.imshow(picture)"""
中心裁剪任意尺寸的图片(以中心为原点)
""...
import matplotlib.pyplot as plt
def label2picture(cropImg,framenum,tracker):
pathnew ="E:\\img2\\"
# cv2.imshow("image", cropImg)
# cv2.waitKey(1)
if (os.path.exists(pathnew + tracker)):
cv2.imw
#–author:zhaozhao
#date:2020/08/06
功能:对图片进行定点裁剪,一张图片需要裁剪出一个矩形的话只需要两个点,左上角和右下角(point1,point2 ),并截取一部分保存
cv2的安装
cmd命令窗口下
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python
显示安装成功后输入python,再import cv2不报错则表示安装成功,若pycharm仍然显示错误,在settings的proj
用cv2模块,可以快速将图片裁剪成所需要的大小,至于裁剪的位置嘛,需要事先计算一下。
改进方向:自动按中间的位置裁剪,再升级可以改进为自动识别中心位置并进行裁剪
【这次升级为批量裁剪啦!】
1. 安装cv2模块
pip install -i https://pypi.tuna.tsinghua.edu.c
image_clip = image_rgb[int(top):(int(top) + int(height)), int(left):(int(left) + int(width))]
这里特别需要说明:
1.需要安装一个python包
安装 pyclipper python 的话,直接pip install pyclipper
地址:https://pypi.org/project/pyclipper/
中文文档:https://www.cnblogs.com/zhigu/p/11943118.html
2.轮廓点等距离外扩
def equidistant_zoom_contour(contour, margin):
等距离缩放多边形轮廓点