알파가 빨간색, 파란색 및 녹색 이미지를 혼합하여 RGB 값에 착색 된 이미지를 생성합니까?
-
19-09-2019 - |
문제
기본적으로 이미지를 프로그래밍 할 수없는 컨텍스트가 있지만 알파 값을 변경할 수 있습니다. 약간의 실험을 통해 특정 알파 값으로 이미지의 빨간색, 파란색 및 녹색 버전을 넓어 다양한 색상을 생성 할 수 있음을 발견했습니다. 그러나이 방법을 통해 진정한 RGB 표현을 달성 할 수 있는지 궁금합니다. 그렇다면 RGB 값을 빨간색, 파란색 및 녹색 층의 다른 알파 값으로 변환하기위한 공식은 무엇입니까?
해결책
알파 조합의 기본 "방정식"은 다음과 같습니다.
alpha * (R1,G1,B1) + (1-alpha) * (R2,G2,B2)
알파가있는 3 개의 레이어가 있으면 실제로 4 개의 레이어 (4 번째 층은 검은 색)를 결합하여 최종 색상은 다음과 같습니다.
alpha1 * (R1,G1,B1) + (1-alpha1) * (
alpha2 * (R2,G2,B2) + (1-alpha2) * (
alpha3 * (R3,G3,B3) + (1-alpha2) * (0,0,0) ) )
각 층에 동일한 이미지가 있고 Layer1은 빨간색 채널 (G1 = B1 = 0)이고 Layer2는 녹색이고 Layer3은 파란색입니다.
(alpha1 * R, (1-alpha1)*alpha2 * G, (1-alpha1)*(1-alpha2)*alpha3 * B)
흰색 픽셀의 경우 가능한 색상을 수행 할 수 있습니다. 검은 색 픽셀의 경우 검은 색 외에는 아무것도 할 수 없습니다. 다른 픽셀의 경우 R, G 및 B의 값으로 제한됩니다.
현재 색상이 (r, g, b) 인 픽셀에서 달성하고 싶다고 가정 해 봅시다.
alpha1 = Rd/R
alpha2 = Gd/(G*(1-alpha1))
alpha3 = Bd/(B*(1-alpha1)*(1-alpha2))
문제는 알파가 일반적으로 0과 1 사이에있을 수 있다는 것입니다.
블렌딩 함수 (예 : Photoshop)를 제어 할 수 있다면 더 잘할 수 있습니다.
다른 팁
내가 당신을 올바르게 이해한다면 그것이 가능하다고 생각하지 않습니다.
특정 픽셀의 경우 이미지의 빨간색 값이 0.5 인 경우 (일반) 범위의 알파와 결합하여 [0,1]를 0.5까지 포함 할 수는 없지만 0.5를 포함 할 수는 없습니다. 예를 들어 0.6 정도를 출력 값으로 얻으려면 위로 이동하십시오.
함께 혼합 된 3 개의 레이어를 원래 이미지에 추가하려는 경우 가능합니다. 다음은 Paint Shop Pro의 기능을 호출하여 하드 부품을 수행하는 Python 스크립트에 대한 링크입니다.
http://pixelnook.home.comcast.net/~pixelnook/splittorgb.htm
그보다 더 자세한 내용이 필요한 경우 의견을 남겨 주시면 나중에 작성하려고합니다.