我正在使用opencv python将一堆透视图图像转换为侧视图像。我试图通过写作循环来做到这一点。在这里,我读了图像
from os import listdir
from PIL import Image as PImage
import cv2
import numpy as np
import os
import glob
img_dir="/path to /images/"
data_path=os.path.join(img_dir,'*g')
files=glob.glob(data_path)
data=[]
for f1 in files:
img=cv2.imread(f1)
data.append(img)
cv2.circle(img, (465, 350), 5, (0, 0, 255), -1)
# bot left
cv2.circle(img, (1150, 665), 5, (0, 0, 255), -1)
cv2.circle(img, (1200, 180), 5, (0, 0, 255), -1)
cv2.circle(img, (445, 50), 5, (0, 0, 255), -1)
pts1 = np.float32([[451, 66], [1194, 205], [472, 366], [1149, 644]])
# pts1=np.float32([[440,50],[2000,185],[1600,1300],[460,500]])
# pts2=np.float32([[0,0],[1920,0],[1920,1080],[0,1080]])
pts2 = np.float32([[467, 308], [1138, 308], [467, 636], [1138, 636]])
matrix = cv2.getPerspectiveTransform(pts1, pts2)
result = cv2.warpPerspective(img, matrix, (1920, 1080))
cv2.imshow('rrr',result)
cv2.waitKey(0)
path = 'path to folder'
cv2.imwrite(os.path.join(path, 'result.jpg'), result)
cv2.waitKey(1)
编辑:我编辑了我的代码,现在可以获取所有输出。我的问题是如何写所有图像?它仅保存其中一个图像
使用以下代码写所有图像:
from os import listdir
from PIL import Image as PImage
import cv2
import numpy as np
import os
import glob
img_dir="path-to-source-folder"
data_path=os.path.join(img_dir,'*g')
files=glob.glob(data_path)
# data=[]
i = 0
for f1 in files:
img=cv2.imread(f1)
# data.append(img)
cv2.circle(img, (465, 350), 5, (0, 0, 255), -1)
# bot left
cv2.circle(img, (1150, 665), 5, (0, 0, 255), -1)
cv2.circle(img, (1200, 180), 5, (0, 0, 255), -1)
cv2.circle(img, (445, 50), 5, (0, 0, 255), -1)
pts1 = np.float32([[451, 66], [1194, 205], [472, 366], [1149, 644]])
# pts1=np.float32([[440,50],[2000,185],[1600,1300],[460,500]])
# pts2=np.float32([[0,0],[1920,0],[1920,1080],[0,1080]])
pts2 = np.float32([[467, 308], [1138, 308], [467, 636], [1138, 636]])
matrix = cv2.getPerspectiveTransform(pts1, pts2)
result = cv2.warpPerspective(img, matrix, (1920, 1080))
path = 'path-to-your-dest-folder'
cv2.imwrite(os.path.join(path, 'result_'+str(i)+'.jpg'), result)
i+=1
cv2.imshow('rrr',result)
cv2.waitKey(0)
cv2.destroyAllWindows()