[英]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()
查看变量中的内容,那么您将看到问题所在
当你除/
然后你创建float
值rw
, rh
但是slice
( img[: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.