繁体   English   中英

在 OpenCV python 中迭代地创建 ROI

[英]creating ROI iteratively in OpenCV python

import cv2

import numpy as np

img=cv2.imread('R.jpg')

h,w,chan=img.shape

rh=h/5

rw=w/5

z={}

M = 5 # Number of patches along height and width

img_slice = img[:rh*M,:rw*M] # Slice out valid image data

z = img_slice.reshape(M,rh,M,rw,-1).transpose(0,2,1,3,4).reshape(M**2,rh,rw,-1)
TypeError: slice indices must be integers or None or have an __index__ method.

谁能为此提供解决方案?

如果您使用print()查看变量中的内容,那么您将看到问题所在


当你除/然后你创建floatrwrh
但是sliceimg[:rh*M,:rw*M] )需要integer数值。

您可以使用//获得integer结果

rh = h // 5

rw = w // 5

或者你可以使用int()

rh = int( h / 5 )

rw = int( w / 5 )

完整示例

import cv2
import numpy as np

img = cv2.imread('lenna.jpg')

h, w, chan = img.shape

rh = int(h / 5)
rw = int(w / 5)

print(rh, rw)

M = 5

img_slice = img[:rh*M,:rw*M]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM