기본적으로 이미지를 색조로 표현할 수없는 컨텍스트가 있습니다. 그러나 알파 값을 변경할 수는 있습니다. 몇 가지 실험을 통해 특정 알파 값을 사용하여 이미지의 빨강, 파랑 및 녹색 버전을 겹쳐서 다양한 색상을 만들 수 있음을 발견했습니다. 그러나,이 방법을 통해 진정한 RGB 표현을 달성 할 수 있는지 궁금합니다. 그렇다면 RGB 값을 빨강, 파랑 및 녹색 레이어의 다른 알파 값으로 변환하는 공식은 무엇입니까?알파는 빨강, 파랑 및 녹색 이미지를 블렌딩하여 모든 RGB 값으로 색조가 지정된 이미지를 생성합니까?
답변
알파 조합의 기본 "식"이다
alpha * (R1,G1,B1) + (1-alpha) * (R2,G2,B2)
는 실제로 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)과 계층 2는 계층 3 녹색 및 파란색 인 경우 얻을 :
(alpha1 * R, (1-alpha1)*alpha2 * G, (1-alpha1)*(1-alpha2)*alpha3 * B)
,
흰색 픽셀의 경우 가능한 모든 색상을 사용할 수 있습니다. 검은 색 픽셀의 경우 검정색 이외에는 아무것도 할 수 없습니다. 다른 픽셀의 경우 R, G 및 B 값에 의해 제한됩니다.
현재 색상이 (R, G, B) 인 픽셀에서 (Rd, Gd, Bd) 당신이 선택해야 할 것입니다 :
alpha1 = Rd/R
alpha2 = Gd/(G*(1-alpha1))
alpha3 = Bd/(B*(1-alpha1)*(1-alpha2))
문제는 알파는 일반적으로 단지 0과 1 사이가 될 수있다 따라서, 예를 들어, RD 경우> R은 당신이 할 수있는 일은 없다.
블렌딩 기능을 제어 할 수 있으면 더 잘 할 수 있습니다 (예 : Photoshop).
나는 당신을 올바르게 이해하는 한 가능하지 않다고 생각합니다.
특정 픽셀의 경우 이미지의 빨간색 값이 0.5라고하면 0.5와 같은 값을 만들기 위해 (일반) [0,1] 범위의 알파와 결합 할 수 있지만 당신은 위에 갈 수 없다. 0.6 정도를 출력값으로합니다.
혼합 된 3 개의 레이어를 만들려는 경우 원래 이미지에 추가 할 수 있습니다. 다음은 어려운 부분을 처리하기 위해 Paint Shop Pro에서 함수를 호출하는 Python 스크립트에 대한 링크입니다. 당신보다 자세한 내용이 필요한 경우
http://pixelnook.home.comcast.net/~pixelnook/SplitToRGB.htm
는 코멘트를 남겨 내가 나중에 기입하려고합니다.
- 1. 주어진 값을 빨강, 녹색 및 파랑 값으로 변환하는 C++ 용 Colormap 라이브러리
- 2. UIBarItems을 빨강/파랑 색으로 설정
- 3. Java는 anaglyph (빨강/파랑 이미지)를 만듭니다.
- 4. rgb 이미지를 hsv로 변환
- 5. 빨강/녹색 테스트 란 무엇입니까?
- 6. OpenGL 텍스처에 BMP를로드하면 빨강 및 파랑 색상이 전환됩니다. (C++/Windows)
- 7. RGB 이미지를 H264로 인코딩하는 FFMpeg
- 8. 픽셀 값을 RGB 형식으로 변환합니다.
- 9. OpenGL에서 어떻게 이미지를 회색조로 변환합니까?
- 10. JPG 이미지를 빨간색, 녹색, 파란색의 3 개 행렬로 읽는 방법?
- 11. C# .NET 양식의 빨강 - 녹색 표시 등
- 12. Qt의 색상 데이터 배열에서 이미지를 표시하는 방법은 무엇입니까?
- 13. 이미지를 그레이 스케일로 변환
- 14. 3 차원 더블 배열에서 rgb 이미지를 생성
- 15. Opencv : 색조 이미지를 RGB 이미지로 변환
- 16. OpenCV 이미지를 RGB에서 HSV 임계 값으로 변환
- 17. css3 그라데이션 설정을 기반으로 PHP로 이미지를 생성합니까?
- 18. 어떻게 Core Graphics에서 RGBA 이미지를 생성합니까?
- 19. MATLAB에서 세 행렬로 표현 된 이미지를 표시하는 방법은 무엇입니까?
- 20. 전송을 위해 모든 이미지를 RGB로 변환
- 21. python - 이미지를 생성하지 않습니다.
- 22. 속성 파일에 이미지를 값으로 가질 수 있습니까?
- 23. RadioSelect에 이미지를 무선 값으로 저장하려면 어떻게합니까?
- 24. java의 지정된 위치에있는 이미지를 병합하는 방법은 무엇입니까?
- 25. 많은 RGB 이미지를 MATLAB에서 하나의 이미지로 연결하는 방법은 무엇입니까?
- 26. rgb 이미지를 그레이 스케일로 변환하고 matlab을 사용하여 이름을 바꿉니다.
- 27. ColdFusion (Java)에서 CMYK와 RGB 사이에서 이미지를 변환하려면 어떻게합니까?
- 28. 웹 사이트에서 모든 이미지를 촬영하는 방법
- 29. SCons - 디렉토리의 모든 이미지를 변환하십시오.
- 30. php가 모든 이미지를 표시하지 않습니다.
그래서이 수식을 사용하면 달성하고자하는 단일 RGB 값에서 alpha1, alpha2 및 alpha3을 어떻게 유도 할 수 있습니까? R = 0xAA이면 alpha1 = 0xAA/0xFF입니까? – Chris
내 대답을 편집했습니다. 좋은 대답이라고 생각하시면 upvoting/checking을 고려하십시오. –
저는 포토샵에서 서로 위에 레이어 3 원을 실험하고 값을 연결합니다. 원은 r : 0xff0000 g : 0x00ff00 b : 0x0000ff 색으로 지정됩니다. 색 값 0xaa5588을 얻으려면 수식에 .69, .32, .78의 알파 값이 각각 지정됩니다. 그러나 이러한 레이어는 검정색 또는 흰색 배경에 상관없이 적절한 색을 생성하지 않습니다. 이것은 본질적으로 달성하려는 시나리오입니다.나는 또한 3 개의 목표 값 중 가장 낮은 값 (0x55)을 빼고 0xFF 이상의 새로운 값을 사용해 보았습니다. 이견있는 사람? – Chris