문제

픽셀의 RGB 값을 단일 단색 값으로 어떻게 변환합니까?

도움이 되었습니까?

해결책

나는 가능한 해결책 중 하나를 찾았습니다. 색상 FAQ.그만큼 휘도 성분 Y(에서 CIE XYZ 시스템)는 인간이 색상으로 가장 많이 인식하는 것을 하나의 채널에 포착합니다.따라서 다음 계수를 사용하십시오.

mono = (0.2125 * color.r) + (0.7154 * color.g) + (0.0721 * color.b);

다른 팁

이 MSDN 기사 용도 (0.299 * color.R + 0.587 * color.G + 0.114 * color.B);

이 위키피디아 기사 용도 (0.3* color.R + 0.59 * color.G + 0.11 * color.B);

이것 최근 과학 기사 간단한 휘도 공식과 보다 복잡한 기술을 포함하여 컬러 사진을 회색조로 변환하는 최신 기술을 비교합니다.

이는 귀하의 동기가 무엇인지에 따라 다릅니다.임의의 이미지를 회색조로 바꾸고 꽤 보기 좋게 만들고 싶다면 이 질문에 대한 다른 답변의 변환이 가능합니다.

컬러 사진을 흑백으로 변환하는 경우 프로세스가 매우 복잡하고 주관적일 수 있으므로 각 이미지에 대해 특정한 조정이 필요할 수 있습니다.관련된 내용을 알아보려면 다음을 살펴보세요. 지도 시간 Photoshop용 Adobe에서 제공합니다.

이를 코드에서 복제하는 것은 상당히 복잡하며 결과 이미지를 미학적으로 "완벽하게" 얻으려면 사용자 개입이 여전히 필요합니다(그게 무엇을 의미하든!).

또한 언급했듯이 RGB 삼중항의 회색조 변환(단색 이미지는 회색조일 필요는 없음)은 취향에 따라 다릅니다.

예를 들어, 빨간색과 녹색 구성 요소를 버리고 대신 파란색 값을 복사하여 속임수를 써서 파란색 구성 요소만 추출할 수 있습니다.또 다른 간단하고 일반적으로 괜찮은 해결책은 픽셀의 RGB 삼중항의 평균을 구하고 해당 값을 세 가지 구성 요소 모두에 사용하는 것입니다.

전문적이고 전혀 저렴하지 않은 Photoshop용 그레이스케일/흑백 변환기 플러그인에 대한 상당한 시장이 있다는 사실은 변환이 원하는 만큼 간단하거나 복잡하다는 것을 말해줍니다.

RGB 기반 그림을 흑백 캔으로 변환하는 논리는 사소한 선형 변환이 아닙니다.내 생각에는 이러한 문제는 "색상 분할" 기술을 통해 더 잘 해결될 수 있다고 생각합니다.k-평균 클러스터링을 통해 "색상 분할"을 달성할 수 있습니다.

MathWorks 사이트의 참조 예를 참조하세요.

https://www.mathworks.com/examples/image/mw/images-ex71219044-color-based-segmentation-using-k-means-clustering

색상별 원본 사진입니다.

Picture with colours

k-평균 클러스터링을 사용하여 흑백으로 변환한 후 Picture after converting to monochrome using k-means clustering

어떻게 작동하나요?

전체 이미지에서 모든 픽셀 값을 수집합니다.너비가 W 픽셀이고 높이가 H 픽셀인 이미지에서 W *H 색상 값을 얻습니다.이제 k-평균 알고리즘을 사용하여 2개의 클러스터(또는 저장소)를 만들고 색상을 적절한 "저장소"에 넣습니다.2개의 클러스터는 흑백 음영을 나타냅니다.

k-평균을 사용한 이미지 분할을 보여주는 YouTube 동영상이 있나요? https://www.youtube.com/watch?v=yR7k19YBqiw

이 방법의 과제

k-평균 클러스터링 알고리즘은 이상치에 취약합니다.RGB 거리가 군중의 나머지 부분과 멀리 떨어져 있는 색상을 갖는 임의의 픽셀 몇 개는 쉽게 중심을 왜곡하여 예상치 못한 결과를 생성할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top