gpt4 book ai didi

python - cv.GetSubRect 迁移到 OpenCV 4

转载 作者:行者123 更新时间:2023-12-02 17:27:11 24 4
gpt4 key购买 nike

OpenCV 曾经有函数 GetSubRect参见例如https://docs.opencv.org/2.4/modules/core/doc/old_basic_structures.html

所以下面几行是有效的:

top = cv.GetSubRect(tmp, (0, 0, W, H/4))
left = cv.GetSubRect(tmp, (0, 0, W/4, H))
bottom = cv.GetSubRect(tmp, (0, H*3/4, W, H/4))
right = cv.GetSubRect(tmp, (W*3/4, 0, W/4, H))

whitenesses = []
whitenesses.append(cv.Sum(top)[2])
whitenesses.append(cv.Sum(left)[2])
whitenesses.append(cv.Sum(bottom)[2])
whitenesses.append(cv.Sum(right)[2])

现在 OpenCV 已经开始使用 numpy 数组。

https://stackoverflow.com/a/58211775/1497139试图解释这一点,但没有投票。

ROI = image[y1:y2, x1:x2]

现在将成为新方法。但是这样应该可以编写与旧样式兼容的 GetSubRect 函数。

这样的 GetSubRect 函数会是什么样子?

为什么OpenCV中不再有这样的函数来简化迁移?

最佳答案

我现在可以回答我自己的第一部分:

代码:

def getSubRect(self,image,rect):
x,y,w,h = rect
return image[y:y+h,x:x+w]

测试:

def test_getSubRect():
image=cv2.imread("testMedia/chessBoard001.jpg",1)
subImage=getSubRect(image,(0,0,200,200))
iheight, iwidth, channels = subImage.shape
assert iheight==200
assert iwidth==200
assert channels==3

和码

# get the intensity sum of a hsv image
def sumIntensity(self,image):
h,s,v=cv2.split(image)
height, width = image.shape[:2]
sumResult=np.sum(v)
return sumResult

关于python - cv.GetSubRect 迁移到 OpenCV 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58455750/

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