2011-04-29 6 views
2

투명 픽셀이있는 이미지 객체가 BufferedImage입니다. 내가 얻고 자하는 것은 이미지의 투명한 부분을 둘러싸는 Shape 또는 Area 개체입니다.Java에서 BufferedImage의 투명한 부분의 모양을 얻는 방법은 무엇입니까?

+0

하나 이상의 개체? 원하는 것은 투명한 픽셀의 [convex hull] (http://source.concord.org/swing/apidocs/org/concord/swing/QuickHull.html)입니다. 분리하려는 투명한 픽셀 그룹이 별도로있는 경우 솔루션이 달라집니다. – Rom1

+0

@ Rom1 convex hull 포인터를 가져 주셔서 감사합니다.이 알고리즘을 읽는 것이 재미있었습니다. 내 경우 투명 픽셀 그룹이 여러 개있을 수 있습니다. – m0s

답변

1

당신은 그 방법으로 시도 할 수 있습니다 : 원래 이미지를 노드가 투명 픽셀 인 무향 그래프로 취급하십시오. 이미지의 인접한 노드 (즉, 바로 위, 왼쪽, 오른쪽, 아래 및 대각선 인 투명한 픽셀) 사이에 가장자리를 놓습니다. 해당 그래프에 대해 connected components을 찾으십시오. 그런 다음 연결된 각 구성 요소에 대해 볼록한 선체를 계산합니다. 각 선체가 포함 된 List을 반환합니다. 각 선체는 Shape입니다.

관련 문제