python - 尝试剪切图像时出现索引错误问题
问题描述
我有一个大学项目,要求我制作一个无需使用 cv2 库函数即可剪切图像的程序。我正在使用 pycharm,我的个人修复是两个 for 循环,它们通过每个像素并用 Bx 和 By 的因子剪切它们。这段代码有两个问题:
- 我只能将 Bx 因子设置为小于 1 的值(否则我会得到索引 602(我的 img 宽度)超出范围错误)。
- 只有当我在 for 循环中将 x 的范围设置为高度(而不是宽度)时,该程序才会运行,否则我会得到一个索引 401 越界错误,这是我的高度。
我尝试过切换它们并实现 if 语句以在值超出范围时中断,但我没有找到任何工作。
import cv2
import numpy as np
img = cv2.imread('IPMP.jpg', 1)
height = img.shape[0]
width = img.shape[1]
print(height, width)
out = np.ones((height, width, 3), np.uint8)
def shearing(img, Bx, By):
for y in range(height):
for x in range(height):
img[int(x * By + y), int(x + y * Bx)] = img[x, y]
shearing(img, -0.5, 0)
cv2.imshow('shearedImage', img)
cv2.waitKey(0)
cv2.destryAllWindows()
我对解决问题的其他建议持开放态度,而不是与这种特定方法结合。提前致谢!
解决方案
推荐阅读
- bash - 将 Apache Ranger Web 上下文路径配置到 /ranger
- php - Laravel 中的 Eloquent ORM 是什么?
- reactjs - TypeError:无法在 React 表中读取 null 的属性“scrollIntoView”
- python - Seaborn 扩展 X 轴可追溯至 2000 年
- jenkins - 詹金斯声明式管道:如何在输入指令之前和之后等待
- java - 有没有直接的方法来获取和发送“当前方法名”作为java中的参数?
- mysql - SQL发票三表合一查询
- python - 如何从 matlab R14 生成 DLL 并由 python 3.5 调用
- sql - 如何使用 Sequelize 在连接表上生成查询?
- python - 为什么熊猫按位置索引子集会出错?