首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Opencv和Python从四个角点裁剪图像

使用Opencv和Python从四个角点裁剪图像
EN

Stack Overflow用户
提问于 2020-04-13 05:57:25
回答 1查看 1K关注 0票数 0

我对裁剪多个图像很感兴趣,这是我在一个数组中拥有的一组角点。我想裁剪图像并将新的堆栈、roi_2等存储在数组/列表中,这样我就可以使用vstack/hstack方法显示它们。

我有我的角点below.Which,我已经从cv2.findContour()函数中获得,然后过滤掉感兴趣的矩形。

代码语言:javascript
复制
corner_points=[array([[[ 48, 521]],[[ 51, 560]],[[185, 558]],[[182, 519]]], dtype=int32), array([[[ 48, 376]],[[ 51, 413]],[[185, 411]],[[182, 372]]], dtype=int32), array([[[ 49, 199]],[[ 52, 236]],[[184, 232]],[[178,195]]], dtype=int32)]

我的代码

代码语言:javascript
复制
import cv2
import numpy as np

y_val=[]
for (x,y) in np.ndenumerate(corner_points):
        y_val.append(y)


new_roi1=roi[y_val[7] : y_val[3], y_val[0]:y_val[4]]  #my roi comes from another cropped image
new_roi2=roi[y_val[15] : y_val[11], y_val[8]:y_val[12]]
new_roi3=roi[y_val[23] : y_val[19], y_val[16]:y_val[20]]

hstack=np.hstack((new_roi3,new_roi2,new_roi1))
cv2.imshow('H Stack',hstack)

cv2.imshow("roi1",new_roi1)
cv2.imshow("roi2",new_roi2)
cv2.imshow("roi3",new_roi3)

问题是我必须手动计算y_vali -如何让它自动挑选出我想要的值,例如y_val7 : y_val3,y_val:y_val4,y_val15 : y_val11,y_val8:y_val12等

代码语言:javascript
复制
y_val=[]
new_roi=[]
for (x,y) in np.ndenumerate(corner_points):
        y_val.append(y)
        for i in range(len(y_val)):
                new_roi.append(roi[y_val[i+7]:y_val[i+3],y_val[i]:y_val[i+3]])

我正在尝试这样的东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-13 15:55:31

代码语言:javascript
复制
index=0
list_roi=[] # has images of all the roi i.e student responses
for contour in contours:
    peri = cv2.arcLength(contour, True)
    approx = cv2.approxPolyDP(contour, 0.03 * peri, True)
    r = cv2.boundingRect(contour)
    if len(contour) >= 4 and cv2.contourArea(contour) > 4000 :
        index += 1
        x, y, w, h = cv2.boundingRect(contour)
        roi = img[y:y+h, x:x+w]
        roi=cv2.resize(roi,(width,height))
        list_roi.append(roi)
        draw_contour = cv2.drawContours(img_copy, [contour], -1, (255, 140, 240), 2)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61178736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档