OpneCV之图像的平移、翻转、旋转、缩放、裁剪(笔记04)

demo图片:

 

平移

代码: 

import numpy as np
import matplotlib.pyplot as plt
import cv2
#图像的平移

def show(image):
    plt.imshow(image)
    plt.axis('off')
    plt.show()

def imread(image):
    image=cv2.imread(image)
    image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
    return image


# #列子1
# image=imread('1.png')
# #往右平移250像素,往下平移500像素
# M=np.float32([[1,0,250],[0,1,300]])
# shifted=cv2.warpAffine(image,M,(image.shape[1],image.shape[0]))
# show(shifted)

代码 

import numpy as np
import matplotlib.pyplot as plt
import cv2
#图像的平移

def show(image):
    plt.imshow(image)
    plt.axis('off')
    plt.show()

def imread(image):
    image=cv2.imread(image)
    image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
    return image



#列子2
image1=imread('1.png')
M=np.float32([[1,0,-250],[0,1,-500]])
shifted=cv2.warpAffine(image1,M,(image1.shape[1],image1.shape[0]))
show(shifted)

图像的旋转放大和缩小

import numpy as np
import matplotlib.pyplot as plt
import cv2
#图像的旋转

def show(image):
    plt.imshow(image)
    plt.axis('off')
    plt.show()

def imread(image):
    image=cv2.imread(image)
    #把图像的BGR转换成RGB
    image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
    return image

image=imread('1.png')
(h,w)=image.shape[:2]
(cX,cY)=(w/2,h/2)
#(cX,cY)表示旋转中心点,45逆时针旋转45度(如果是-45度,表示顺时针旋转),1.0表示缩放(1表示没有缩小,也没有放大)
M = cv2.getRotationMatrix2D((cX,cY),45,1.0)
image = cv2.warpAffine(image,M,(w,h))
show(image)

图形效果展示:

设置图片尺寸:

import numpy as np
import matplotlib.pyplot as plt
import cv2
#图像的缩放

def show(image):
    plt.imshow(image)
    plt.axis('off')
    plt.show()

def imread(image):
    image=cv2.imread(image)
    #把图像的BGR转换成RGB
    image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
    return image

image=imread('1.png')
width=150
hight=150
#设置图片的尺寸大小
image=cv2.resize(image,(width,hight))
show(image)

图像5中插值方法:

#设置图片的尺寸大小
# image=cv2.resize(image,(width,hight))
#图像的5中缩放插值法
image=cv2.resize(image,(width,hight),interpolation=cv2.INTER_NEAREST)
#interpolation=cv2.INTER_NEAREST表示最近邻
#interpolation=cv2.INTER_LINEAR双线性插值法
#interpolation=cv2.INTER_AREA基于图像区域方法
#interpolation=cv2.INTER_CUBIC立方插值法
#interpolation=cv2.INTER_LANCZOS4兰索斯插值法 

import numpy as np
import matplotlib.pyplot as plt
import cv2
#图像的缩放

def show(image):
    plt.imshow(image)
    plt.axis('off')
    plt.show()

def imread(image):
    image=cv2.imread(image)
    #把图像的BGR转换成RGB
    image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
    return image

image=imread('1.png')
width=150
hight=150
#设置图片的尺寸大小
# image=cv2.resize(image,(width,hight))
#图像的5中缩放插值法
image=cv2.resize(image,(width,hight),interpolation=cv2.INTER_NEAREST)
#interpolation=cv2.INTER_NEAREST表示最近邻
#interpolation=cv2.INTER_LINEAR双线性插值法
#interpolation=cv2.INTER_AREA基于图像区域方法
#interpolation=cv2.INTER_CUBIC立方插值法
#interpolation=cv2.INTER_LANCZOS4兰索斯插值法
show(image)

 

图片的翻转

import numpy as np
import matplotlib.pyplot as plt
import cv2
#图像翻转

def show(image):
    plt.imshow(image)
    plt.axis('off')
    plt.show()

def imread(image):
    image=cv2.imread(image)
    #把图像的BGR转换成RGB
    image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
    return image

image=imread('1.png')
# #水平翻转
# image = cv2.flip(image,1)
#垂直翻转
# image = cv2.flip(image,0)
# #水平+垂直翻转
image = cv2.flip(image,-1)
show(image)

 图片展示:

图像的裁剪

 

import numpy as np
import matplotlib.pyplot as plt
import cv2
#图像裁剪

def show(image):
    plt.imshow(image)
    plt.axis('off')
    plt.show()

def imread(image):
    image=cv2.imread(image)
    #把图像的BGR转换成RGB
    image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
    return image

image=imread('1.png')
#图像x方向从0到200进行裁剪,图像y方向按照50:200进行裁剪
# image=image[0:200,50:200]
#图像裁剪x方向是200到最后,y方向是50到-50
image=image[200:,50:-50]
show(image)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值