2010-06-03 5 views
1

가능한 경우 이미지 배경을 "자동으로"제거하는 방법에 대한 정보를 찾으려고합니다.C를 사용하여 이미지 단색 배경을 제거하십시오.

실제로 많은 데이터를 찾을 수 없으며 가능한 경우 사용할 수있는 API 구성 요소가 있는지 알 수 없습니다.

아이디어가 있으십니까?

+2

이미지에서 단 하나의 색상을 투명 색상으로 대체 하시겠습니까? 어떤 이미지 유형 (png, gif, jpg, ...)으로 작업하고 있습니까? – Koen

+1

더 많은 정보를 게시해야합니다. 이미지의 "배경"을 어떻게 정의합니까? –

+0

예! 나는 배경을 정의하지 않는다. 응용 프로그램의 최종 사용자가 업로드했으며 제거해야합니다. 우리는 단색 배경을 기대하고 있으며 나는 그것을 투명 (png 출력)으로 변경해야합니다. JPG 또는 PNG로 업로드됩니다. 감사! – Homer1980ar

답변

3

규칙을 설정합니다. 예를 들어 [0,0]의 픽셀은 '투명'색상 (배경)이어야합니다. 비트 맵으로 이미지를로드 한 다음 같은 것을 할 (의는 BMP를 부르 자) :

bmp.MakeTransparent(bmp.GetPixel(0, 0)); 
+0

그것은 효과가있다! 그러나 중간에있는 이미지의 경계는 분명하지 않습니다. (http://picasaweb.google.com/lh/photo/LvDyBlurCQ-IxQmQoFhdmA?feat=directlink). bmp.GetPixel (0,0)에서 선택된 색상과 비슷한 색상을 어떻게 찾을 수 있는지 알고 있습니까? 그래서 투명하게 만들 수도 있습니까? – Homer1980ar

+0

예제 이미지가 주어지면 유사한 색상을 투명하게 만드는 것만으로는 충분하지 않다는 것을 알게 될 것입니다. 배경이 검은 색으로 보이고 이미지의 그림에 검은 선 선 작업이 포함되어있어 이미지의 중요한 부분을 삭제할 위험이 있습니다 (그리고 맨 위의 텍스트가 완전히 손실 될 수 있습니다). 도망 갈 수 있다면, 배경색이 분명해야한다는 규칙을 정하면 충분할 것입니다. 그렇게 할 수 없다면, 당신은 진보 된 이미지 분석을 시작하게 될 것이므로, 실제로 당신의 업무가 중단 될 것입니다. – allonym

0

호머, 당신이 제안하는 파일 형식 들어, '배경'이 무엇인지 정의하는 쉬운 방법이 없습니다. 예를 들어, 흰색 배경에 화려한 텍스트가 있다고 가정 해보십시오. 흰색을 투명하게 만들고 싶다고 가정합니다. 파일 형식에는 "이 레이어 또는 색상이 배경입니다"라는 내용이 없습니다. 배경색을 결정하기위한 발견 적 방법이있을 수 있지만 image.MakeBGTransparent()와 같은 작업을 수행 할 라이브러리는 없을 것입니다.

관련 문제