문제

일관된 배경에 찍은 의류 기사의 이미지를 사용하여 의류를 제외한 이미지의 모든 픽셀을 투명하게 만들고 싶습니다. 이것에 대해 가장 좋은 방법은 무엇입니까? 나는 이것과 오픈 소스 라이브러리에 공통적 인 알고리즘을 연구했습니다. Opencv. 내 자신을 굴리는 것 외에도 OpenCV를 사용하는 것 외에도 쉽게 할 수있는 방법이 있습니까? 나는 모든 언어 나 플랫폼에 열려 있습니다.

감사

도움이 되었습니까?

해결책

배경이 이미지로 구성되지만 이미지에서 일관성이 없다면 까다로워 질 수 있지만 여기에 내가 할 일이 있습니다.

  1. 이미지를 YUV 또는 실험실과 같은 강도/색상 형태로 분리하십시오.
  2. 색상 부분에 히스토그램을 만듭니다. 가장 많이 발생하는 색상을 찾으십시오. 이것은 (대부분) 배경 (업데이트) 일 것입니다 (업데이트)는 이미지의 가장자리에서 하나 또는 두 개의 픽셀 내에서 모든 픽셀의 가장 많이 발생하는 색상을 찾는 것입니다.
  3. 이미지의 에드지에서 시작하여 해당 색상을 가진 모든 픽셀을 설정하고 그 색상의 픽셀을 통해 가장자리에 투명하게 연결됩니다.
  4. 의류 조각의 가장자리는 이제 배경과 의류 조각에서 색상을 얻는 픽셀로 구성되어 있기 때문에 약간 추악 해 보일 것입니다. 이것을 싸우려면 조금 더 많은 작업을 수행해야합니다.

    1. 일부를 통해 옷의 가장자리를 찾으십시오. 가장자리 감지 기구.
    2. 모서리 픽셀의 색상을 "내부"내부 픽셀 (즉, 해당 영역의 의류 색상)의 혼합으로 교체하고 투명 (출력 이미지 형식이 지원하는 경우).
    3. 정말 화려하게 되려면 해당 픽셀의 색상이 얼마나 "같은"정도에 따라 투명성을 증가시킵니다.

다른 팁

기본적으로 배경의 색상을 찾아 빼면서 이것을 알고 있다고 생각합니다. 이 모든 것을 자동으로 수행하는 것은 약간 까다 롭지 만 가능해 보입니다.

먼저 살펴보십시오 블로브 감지 OpenCV를 사용하여 이것이 기본적으로 당신을 위해 이루어 졌는지 확인하십시오.

직접 수행하려면 :

배경을 찾으십시오: 몇 가지 옵션이 있습니다. 아마도 가장 쉬운 것은 이미지를 히스토그인하는 것이며, 값이 비슷한 픽셀의 많은 수가 배경이며, 두 개의 큰 컬렉션이 있으면 배경이 중간에 큰 구멍이있는 배경이 될 것입니다. 또 다른 접근법은 주변 주위의 밴드를 배경색으로 취하는 것이지만, 예를 들어 플래시의 반사가 더 중앙에 위치한 배경 픽셀을 크게 밝게 할 수 있기 때문에 열등한 것 같습니다.

배경을 제거하십시오:이 점에서 첫 번째는 배경색을 기반으로 이미지를 임계 한 다음 이것에 대한 "열린"또는 "닫기"알고리즘을 실행 한 다음 마스크로 사용하여 의류 기사를 선택하는 것입니다. (열린/닫기의 지점은 의류에서 작은 배경색 품목, 흰색 블라우스의 검은 색 버튼이나 검은 옷에 밝은 반사를 제거하지 않는 것입니다.)

OpenCV는 이것을위한 좋은 도구입니다.

이것의 가장 까다로운 부분은 아마도 물체 주위의 그림자에있을 것입니다 (예 : 흰색 배경의 검은 재킷은 일부 가장자리에 연속적인 회색 그림자가 있고 어디에서 잘라낼 것인가?) 다른 질문을 게시하십시오.

배경의 정확한 색상 강도를 알고 절대 변하지 않을 것이며 의류 기사 가이 색상과 결코 일치하지 않을 경우, 이것은 배경 감산의 간단한 적용입니다. 즉, 특정 색상 강도가 아닌 모든 것입니다. "On"Pixel, 관심 중 하나. 그런 다음 연결된 구성 요소 라벨링을 사용할 수 있습니다 (http://en.wikipedia.org/wiki/connected_component_labeling) 별도의 객체 그룹을 알아 내기 위해.

모든 그림에서 동일한 배경을 가진 색상 이미지의 경우 :

  • 이미지를 HSV 또는 HSL로 변환하십시오
  • 배경의 색조 값 (+/- 10)을 결정하십시오. 예를 들어 Photoshop을 사용 하여이 단계를 한 번 수행 한 다음 모든 그림에서 동일한 값을 사용하십시오.
  • 색상 임계 값 수행 : 색조 채널에서 배경의 색조 ([0, Hue [ +] Hue, 255] 일반적으로)의 색조를 제외하십시오. 다른 모든 채널에는 전체 값 범위 (일반적으로 0 ~ 255)가 포함됩니다. 배경이 아닌 픽셀을 선택합니다.
  • 배경과 같은 색상 일 수있는 옷의 일부를 완성하기 위해 "채우기 구멍"작업 (일반적으로 Blob Analysis 또는 라벨링 기능을 따라 발견)을 수행하십시오.
  • 이제 옷의 "마스크"인 이미지가 있습니다. 0이 아닌 픽셀은 옷을 나타내고 0 픽셀은 배경을 나타냅니다.
  • 처리 의이 단계는 픽셀을 투명하게 만드는 방법에 따라 다릅니다. 일반적으로 이미지를 알파 (투명성) 채널로 PNG로 저장하면 원본 이미지와 마스크는 이전 단계에서 구축됩니다.
  • Voilà, 배경이 사라지고 결과 이미지를 저장합니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top