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

demo图片:

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

平移

代码: 

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)

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

代码 

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)

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

图像的旋转放大和缩小

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)

图形效果展示:

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

设置图片尺寸:

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)

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

图像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)

 图片展示:

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

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

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

图像的裁剪

 

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)

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

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

你可能感兴趣的:(【OpenCV】)