You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 3.6.4中OpenCV 3.4运行图像平移代码报错求助

解决OpenCV图像平移代码报错问题

先看你贴的代码,第一个致命错误是函数名拼写失误:cv2.wrapAffine 应该是 cv2.warpAffine——少了一个字母r,这是触发报错的核心原因。

除此之外,还有几个细节需要注意,帮你避免后续踩坑:

  • 图片路径问题:如果lena.jpg不在Python脚本的同一目录下,cv2.imread会返回None,此时访问image.shape[:2]会直接报错。建议要么把图片放到脚本同目录,要么写完整绝对路径,比如"C:/Users/你的用户名/Desktop/lena.jpg"(注意用正斜杠或者双反斜杠)。
  • 平移量的类型优化:虽然OpenCV允许变换矩阵使用浮点数,但图像像素坐标是整数,你可以把quarter_height和quarter_width转成整数(比如int(height/4)),这样平移结果会更符合预期。

修正后的完整代码如下:

import cv2
import numpy as np

# 确保图片路径正确
image = cv2.imread("lena.jpg")
# 先检查图片是否成功加载
if image is None:
    print("Error: 无法加载图片,请检查路径是否正确!")
else:
    height, width = image.shape[:2]
    quarter_height, quarter_width = int(height/4), int(width/4)
    # 变换矩阵:[1,0,tx],[0,1,ty],tx是垂直平移量,ty是水平平移量
    T = np.float32([[1, 0, quarter_height], [0, 1, quarter_width]])
    # 修正函数名拼写错误
    img_translation = cv2.warpAffine(image, T, (width, height))
    cv2.imshow("Translate", img_translation)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

你可以先修正函数名试试,大概率能解决当前报错。如果还是不行,先按照代码里的提示检查图片是否加载成功,逐步排查问题即可。

内容的提问来源于stack exchange,提问作者aminrivaldo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:13:07