2
투명 픽셀이있는 이미지 객체가 BufferedImage
입니다. 내가 얻고 자하는 것은 이미지의 투명한 부분을 둘러싸는 Shape
또는 Area
개체입니다.Java에서 BufferedImage의 투명한 부분의 모양을 얻는 방법은 무엇입니까?
투명 픽셀이있는 이미지 객체가 BufferedImage
입니다. 내가 얻고 자하는 것은 이미지의 투명한 부분을 둘러싸는 Shape
또는 Area
개체입니다.Java에서 BufferedImage의 투명한 부분의 모양을 얻는 방법은 무엇입니까?
당신은 그 방법으로 시도 할 수 있습니다 : 원래 이미지를 노드가 투명 픽셀 인 무향 그래프로 취급하십시오. 이미지의 인접한 노드 (즉, 바로 위, 왼쪽, 오른쪽, 아래 및 대각선 인 투명한 픽셀) 사이에 가장자리를 놓습니다. 해당 그래프에 대해 connected components을 찾으십시오. 그런 다음 연결된 각 구성 요소에 대해 볼록한 선체를 계산합니다. 각 선체가 포함 된 List
을 반환합니다. 각 선체는 Shape
입니다.
하나 이상의 개체? 원하는 것은 투명한 픽셀의 [convex hull] (http://source.concord.org/swing/apidocs/org/concord/swing/QuickHull.html)입니다. 분리하려는 투명한 픽셀 그룹이 별도로있는 경우 솔루션이 달라집니다. – Rom1
@ Rom1 convex hull 포인터를 가져 주셔서 감사합니다.이 알고리즘을 읽는 것이 재미있었습니다. 내 경우 투명 픽셀 그룹이 여러 개있을 수 있습니다. – m0s