2017-12-14 11 views
0

RGB 이미지에서 임계 값 연산을 수행해야합니다. 내가하고자하는 thresholding은 다음과 같이 행동해야합니다.RGB 이미지에서 임계 값 연산 수행

(0.299 * R' + 0.587 * G' + 0.114 * B'로서)의 화소의 그레이 스케일 동등한 다음 출력 영상의 화소 값이 될 것이다 Y 경우 : Threshold_color는 RGB 컬러 값이

P = Threshold_color, if Y < threshold_value 
    = (R,G,B), Original value 

,

I 인텔 IPP 라이브러리를 사용하여이 작업을 수행하려고했습니다. 거기에 thresholding of images과 관련된 몇 가지 API가 있습니다. (ippiThreshold_LTVal_8u_C3R)

그러나 이러한 방법은 한 번에 하나의 데이터 요소에서만 작동하는 것으로 보입니다. 그러나 내가하고자하는 thresholding은 3 가지 다른 값 (R, G, B)의 조합에 달려 있습니다. IPP 라이브러리를 통해이를 달성 할 수있는 방법이 있습니까?

답변

1

하기 권장 방법 : 그레이 스케일 이미지로

  1. 복사 화상
  2. 은 여분의 컬러와 임계치를
  3. 곱하기이 마스크를 사용하는 바이너리 마스크 0/1 (그레이 스케일 이미지와 같은 크기)를 만들어 오버레이를 생성하려고합니다.
  4. 원본 이미지에 오버레이를 적용합니다. 여기에 다른 종류의 이미지를 생성하고

참고 :

+0

접근 방식을 제안 해 주셔서 감사합니다. IPP API를 사용하여 필요한 결과를 얻을 수있었습니다. [색상 회색 변환에 : ippiColorToGray_ ] [회색 이미지에 적용 임계 값은 단색 이미지를 얻을 수 있습니다 : ippiLUTPalette_ ] [threshoild 소스 이미지 병합 :. ippiAlphaComp_ 을 또한 올바른 병합 I를 얻기 위하여 ippiSet_를 사용하여 Thresholded 이미지와 소스 이미지에 올바른 알파를 설정하십시오. 그레이 스케일 이미지에서 비트 마스크를 생성하는 API를 찾을 수 없습니다. 그래서 저는 대신 보통의 8 비트 심도 이미지를 사용했습니다. – sajas

1

예 IPP를 사용하여이 기능을 구현할 수 있지만 원하는 기능을 수행하는 표준 기능을 알지 못합니다.

참조에서 찾을 수있는 모든 IPP 임계 값 연산은 전역 임계 값을 사용합니다.

+0

(3 단계에서는 단색 이미지와 있지만) 처음 그레이 스케일, 다음 블랙 & 흰색, 그리고 마지막으로 컬러 이미지를 다시 나는 IPP를 사용하여 새로운 오전 프로그래밍에서. IPP를 통해 결과를 얻기위한 의사 코드를 제안 할 수 있습니까? 그냥 단계가 충분합니다. IPP에서 내 요구 사항과 관련된 모든 기능을 사용할 수 있는지 알아야합니다. – sajas

+0

@sajas는 각 픽셀의 회색 값을 계산 한 다음이를 비교하여 출력 픽셀을 할당합니다. 루프 내에서 LUT 또는 arrithmetic 연산 또는 간단한 if 문을 사용하여 여러 가지 방법으로이 작업을 수행 할 수 있습니다. – Piglet

+0

감사합니다. 나는 그것을 시도하고 성공을 한 번 받아 들일 것이다. – sajas