примечания opencv (2): отсечение изображения и смещение изображения

OpenCV

Жизнь подобна океану, я подобен соленой рыбе, учусь по волнам в огромном океане, это «разрезание изображения» и «сдвиг изображения» в серии заметок opencv. Больше можно обратить внимание на общественность "Langxue" ~

Все картинки в мире можно разрезать и сдвигать. В этой статье они записаны очень соленым способом.

Сначала загрузите изображение

import cv2
import numpy as np
from matplotlib.pyplot import imshow
%matplotlib inline

img = cv2.imread('image.jpg',1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
#  显示原图
imshow(img)

Исходное изображение выглядит следующим образом:

浪学

Обрезка изображения: операция обрезания изображения относительно проста, просто нужно разрезать пиксельную матрицу изображения.

dst = img[100:200, 100:300]
imshow(dst)

Обрезанное изображение показано ниже

浪学

Сдвиг изображения:

1) Первый метод, построить матрицу смещения, а затем использовать матрицу для отображения

# 方法1
matShift = np.float32([[1,0,100],[0,1,200]])  # 偏移矩阵
dst = cv2.warpAffine(img, matShift, (height, width))  # 映射

2) Второй способ, прямое манипулирование пикселями

# 方法2
dst = np.zeros(img.shape, np.uint8)
# 像素操作
for i in range(height):
    for j in range(width-100):
        dst[i, j+100] = img[i,j]

Вывод двух результатов выглядит следующим образом

浪学

Это все, что я зафиксировал в сегодняшних заметках: А Ланг заварил кофе, сменил позу и продолжил греться на солнышке. . .