2013-04-16 2 views
1

이진 이미지를 확장해야합니다. 내 문제는 이진 이미지의 차이 크기에 대한 확장 작업을 적용하는 것입니다. 나는 모든 이미지에 비례하여 팽창 연산을 적용하고 바퀴 같은 작은 이미지가 될 것을 방지 할어떻게 바이너리 이미지에 비례 확장 작업을 적용 할 수 있습니까?

  • small image dilated 흰색 원입니다.

    #image dilation 
    import cv2 
    
    path "pathimage" 
    gray = cv2.imread(path,0) 
    element = cv2.getStructuringElement(cv2.MORPH_CROSS,(6,6)) 
    graydilate = cv2.erode(gray, element) #imgbnbin 
    graydilate = cv2.erode(graydilate, element) 
    #graydilate = cv2.erode(graydilate, element) 
    
    cv2.imshow('erode',graydilate) 
    cv2.waitKey() 
    
    ret,thresh = cv2.threshold(graydilate,127,255,cv2.THRESH_BINARY_INV) 
    imgbnbin = thresh 
    print("shape imgbnbin") 
    print(imgbnbin.shape) 
    cv2.imshow('binaria',imgbnbin) 
    cv2.waitKey() 
    

    이미지의 크기를 조정해야합니까?

  • 답변

    1

    는 다음 중 하나를 수행 할 수 있습니다

    • 다시 스케일 이미지를 같은 크기로.

    OR

    • 이미지에서 객체가 이미지의 크기에 비례하지 않으면

      , 그 오브젝트의 바운딩 박스를 추출하고, 현재 (구조 부재의 크기를 결정 항상 6x6)를 객체의 경계 상자 크기에 비례하여 정의합니다. 그렇게하면 형태가 객체 크기에 비례한다는 것을 확신 할 수 있습니다.
    +0

    죄송합니다. 구조 요소의 크기는 어떻게 결정합니까? 경계 상자 크기가 3x3 대신 6x6을 사용하여 예를 들어 (320, 240)보다 큰지 선택하라고 제안하겠습니까? – improc

    +1

    아마도 구조 요소의 크기가 테두리 상자의 ~ 1 %라고 결정할 수 있습니다. 그렇게하면 테두리 상자의 크기가 W x H 인 경우 구조 요소의 크기는 0.01W x 0.01H입니다. 320x240의 예에서는 3x2로 반올림됩니다. – Zaphod