پیدا کردن ناحیه ماسک در پایتون - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

پیدا کردن ناحیه ماسک در پایتون

0 امتیاز
سلام من از opencv در پایتون استفاده می کنم تصویر را باینری کردم و ماسک بدست آمده حالا قصد دارم ناحیه مربوط به ماسک را پیدا کنم.
سوال شده خرداد 15, 1399  بوسیله ی small (امتیاز 67)   3 12 17

1 پاسخ

+1 امتیاز

با findcontour کانتور هر ناحیه را پیدا کنید سپس ناحیه مربوط به هر کانتور و سپس کلیه نواحی را با هم جمع کنید تا ناحیه نهایی بدست آید .


  def unionRects(a,b):
    x = min(a[0], b[0])
    y = min(a[1], b[1])
    w = max(a[0]+a[2], b[0]+b[2]) - x
    h = max(a[1]+a[3], b[1]+b[3]) - y
    return (x, y, w, h)


  def findRects(src):
     contours, hierarchy = cv2.findContours(src, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
     result = []
     for i in range(len(contours)):
        if hierarchy[0][i][3] == -1 :
           r = cv2.boundingRect(contours[i])
           result.append(r)

     return result

  def findRect(src):
    rects = findRects(src)
    if len(rects):
      result = rects[0]
      for i in range(len(rects) -1) :
        result = unionRects(result,rects[i+1])
      return result
    else : return (-1,-1,0,0)



در اینجا تابع findRect ناحیه کلی مربوط به ماسک را شناسایی می کنه.


 

پاسخ داده شده خرداد 22, 1399 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
...