mirror of
https://gitcode.com/gh_mirrors/es/esp32-opencv.git
synced 2025-08-15 19:30:59 +08:00
66 lines
2.1 KiB
Python
66 lines
2.1 KiB
Python
from __future__ import print_function
|
|
import cv2 as cv
|
|
import numpy as np
|
|
import argparse
|
|
|
|
## [Update]
|
|
def update_map(ind, map_x, map_y):
|
|
if ind == 0:
|
|
for i in range(map_x.shape[0]):
|
|
for j in range(map_x.shape[1]):
|
|
if j > map_x.shape[1]*0.25 and j < map_x.shape[1]*0.75 and i > map_x.shape[0]*0.25 and i < map_x.shape[0]*0.75:
|
|
map_x[i,j] = 2 * (j-map_x.shape[1]*0.25) + 0.5
|
|
map_y[i,j] = 2 * (i-map_y.shape[0]*0.25) + 0.5
|
|
else:
|
|
map_x[i,j] = 0
|
|
map_y[i,j] = 0
|
|
elif ind == 1:
|
|
for i in range(map_x.shape[0]):
|
|
map_x[i,:] = [x for x in range(map_x.shape[1])]
|
|
for j in range(map_y.shape[1]):
|
|
map_y[:,j] = [map_y.shape[0]-y for y in range(map_y.shape[0])]
|
|
elif ind == 2:
|
|
for i in range(map_x.shape[0]):
|
|
map_x[i,:] = [map_x.shape[1]-x for x in range(map_x.shape[1])]
|
|
for j in range(map_y.shape[1]):
|
|
map_y[:,j] = [y for y in range(map_y.shape[0])]
|
|
elif ind == 3:
|
|
for i in range(map_x.shape[0]):
|
|
map_x[i,:] = [map_x.shape[1]-x for x in range(map_x.shape[1])]
|
|
for j in range(map_y.shape[1]):
|
|
map_y[:,j] = [map_y.shape[0]-y for y in range(map_y.shape[0])]
|
|
## [Update]
|
|
|
|
parser = argparse.ArgumentParser(description='Code for Remapping tutorial.')
|
|
parser.add_argument('--input', help='Path to input image.', default='chicky_512.png')
|
|
args = parser.parse_args()
|
|
|
|
## [Load]
|
|
src = cv.imread(cv.samples.findFile(args.input), cv.IMREAD_COLOR)
|
|
if src is None:
|
|
print('Could not open or find the image: ', args.input)
|
|
exit(0)
|
|
## [Load]
|
|
|
|
## [Create]
|
|
map_x = np.zeros((src.shape[0], src.shape[1]), dtype=np.float32)
|
|
map_y = np.zeros((src.shape[0], src.shape[1]), dtype=np.float32)
|
|
## [Create]
|
|
|
|
## [Window]
|
|
window_name = 'Remap demo'
|
|
cv.namedWindow(window_name)
|
|
## [Window]
|
|
|
|
## [Loop]
|
|
ind = 0
|
|
while True:
|
|
update_map(ind, map_x, map_y)
|
|
ind = (ind + 1) % 4
|
|
dst = cv.remap(src, map_x, map_y, cv.INTER_LINEAR)
|
|
cv.imshow(window_name, dst)
|
|
c = cv.waitKey(1000)
|
|
if c == 27:
|
|
break
|
|
## [Loop]
|