gpt4 book ai didi

python - 在 python 3 中不使用 OpenCV 旋转图像

转载 作者:太空宇宙 更新时间:2023-11-03 20:15:29 26 4
gpt4 key购买 nike

我正在尝试在不使用 OpenCv 库的情况下使用最近邻和双线性插值在 python 中旋转图像,这是我的方法:

import matplotlib.image as img
import numpy as npy
import math

m = img.imread("room.png");

w, h = m.shape[:2];

newImage = npy.zeros([w,h, 4]);

for i in range(w - 1):
for j in range(h - 1):
newImage[i , j] = m[int(math.cos(30)*(i-w/2)+math.sin(30)*(j-h/2) + w/2),int(math.cos(30)*(j-h/2)-math.sin(30)*(i-w/2) + h/2)]

img.imsave('rotated.png', newImage);

但我找不到为什么它不能正常工作,这是我收到的错误:

索引错误:索引 852 超出尺寸为 852 的轴 1 的范围

最佳答案

我应该确定如果像素的坐标最终位于原始图像之外会怎样:

for i in range(w - 1):
for j in range(h - 1):
pixelNewX = int(math.cos(math.pi/6)*(i-w/2)+math.sin(math.pi/6)*(j-h/2)+w/2)
pixelNewY = int(math.cos(math.pi/6)*(j-h/2)-math.sin(math.pi/6)*(i-w/2)+h/2)
if 0 <= pixelNewX < w and 0 <= pixelNewY < h :
newImage[i, j] = m[pixelNewX, pixelNewY]

关于python - 在 python 3 中不使用 OpenCV 旋转图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58475369/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com