use*_*633 2 python opencv image-processing
我使用Python3 OpenCV3。我想绘制图像的矩形中心并在矩形内裁剪图像。我尝试运行此代码,但矩形未显示在图像中心。
width, height, channels = img.shape
cv2.rectangle(img,(0,0),(int(width/2), int(height/2)), (0,255,0) , 2)
Run Code Online (Sandbox Code Playgroud)
如何绘制图像的矩形中心并在矩形内裁剪图像?
你需要使用numpy slicing才能裁剪图像。
存储图像的方式OpenCV是作为numpy array. 这意味着您可以像numpy数组一样“裁剪”它们。
执行此操作的方法如下syntax:
cropped = img[top_edge : bottom_edge, left_edge : right_edge]
Run Code Online (Sandbox Code Playgroud)
其中top_edge等bottom_edge是pixelsvals。
这样做的原因是因为numpy slicing允许您slice沿着任何一个axis- 每个都用逗号分隔。
所以在这里,我们是和之间的图像slicing,然后逗号表示接下来发生的事情将影响每个 中的。所以对于给定的,我们它在和之间。就是这样!rowstop_edgebottom_edgecolumnsrowrowsliceleft_edgeright_edge
希望这有用!:)