EasyImage - 그레이 스케일 이미지 전처리
EasyColor는 객체를 감지, 분류 및 분석하여 가능한 한 효율적으로 컬러 이미지 처리를 수행합니다.여러 가지 변환 기능을 제공하므로 모든 컬러 시스템을 처리할 수 있습니다.


인간의 눈은 빛에 민감합니다.
- 강도 또는 무채색 감각, 그레이스케일 이미지에 의해 포착됨.
- 파장 또는 유채색 감각, 적, 녹, 청의 원색으로 표현됨.
트루 컬러 디지털 이미지(픽셀당 24비트, RGB 채널당 8비트)는 육안으로 구별할 수 있는 모든 컬러를 표현합니다.
XYZ 색 공간 내의 가시 색상 영역
컬러 시스템에는 다음 세 가지가 있습니다.
- 혼합 시스템(RGB/XYZ)은 삼원색의 비율을 조합하는 시스템입니다.
- YUV 루마/크로마 시스템(XYZ/YUV)은 무채색(Y)과 유채색 감각(U 및 V)을 분리한 시스템입니다.흑백 이미지도 필요한 경우에 사용합니다(텔레비전).
- 강도/채도/색조 시스템(RGB/XYZ/YUV)은 확장 유채색(컬러 채도 및 색조) 감각에서 무채색(흑백 강도)을 분리한 시스템입니다.조명 효과를 제거하거나, RGB 이미지를 다른 컬러 시스템으로 변환할 때 사용합니다.채도가 높은 컬러는 더 생생하며, 채도가 낮은 컬러는 더 회색을 띱니다.
일반적인 용도:
- RGB는 모니터, 카메라 및 기타 디스플레이 장치에 사용됩니다.
- YUV는 색차 정보를 압축하여 컬러 이미지를 효율적으로 전송하는 데 사용됩니다.
- XYZ는 장치와 독립적인 컬러 표현에 사용됩니다.
모든 이미지 처리 작업에 양자화 좌표 즉, 이미지를 프레임 버퍼에 저장하는 데 바이트 표현을 사용하는 [0..255] 구간 내의 불연속 값을 사용할 수 있습니다.
컬러 시스템 변환 작업에도 흔히 [0..1] 구간으로 정규화되는 연속 값인 간단한 비양자화 좌표를 사용할 수 있습니다.

컬러 이미지는 픽셀당 세 성분으로 이루어진 벡터 필드입니다.개체에 의해 반영되는 세 RGB 성분 모두는 광원의 강도에 비례하는 크기를 갖습니다.두 컬러 성분의 비율을 고려하면 조명과 독립적인 이미지를 얻을 수 있습니다.픽셀당 세 부분의 정보를 현명하게 조합하면 더 뛰어난 특성을 추출할 수 있습니다.
컬러 이미지는 다음과 같은 세 가지 방식으로 처리할 수 있습니다.
- 성분 추출: 세 가지 컬러 정보에서 가장 관련성 높은 특징을 추출하여 데이터의 양을 줄일 수 있습니다.예를 들어, 개체가 색조에 따라 구분되는 경우, 전처리 단계에서 이미지를 색조 값만 포함된 회색조 이미지로 변환할 수 있습니다.
- 비연계 변환: 각 컬러 성분에 대해 개별적으로 작업을 수행할 수 있습니다.예를 들어, 두 이미지를 함께 더하면 빨강, 녹색, 파랑 성분이 합쳐지고, 결과가 성분별로 결과 컬러 이미지에 저장됩니다.
- 연계 변환: 모든 세 컬러 성분을 결합하여 세 가지 파생 성분을 만들 수 있습니다.예를 들어 YIQ를 RGB로 변환하는 경우에 해당합니다.

EasyColors 조회 테이블은 지정한 입력에 대해 어떤 출력이 대응하는지 정의하는 값의 배열을 제공하므로, 사용자 정의 변환 방식으로 이미지를 변경할 수 있습니다.
컬러 픽셀은 16,777,216(224)개의 값을 가질 수 있으며, 이러한 항목이 포함된 풀 컬러 LUT는 50 MB의 메모리를 차지하게 되고 변환에 막대한 시간이 소요됩니다.사전 계산된 LUT 덕분에 컬러 변환이 실현 가능하게 되었습니다.
컬러 이미지를 변환하려면 다음 중 한 가지 기능을 사용하여 LUT를 초기화해야 합니다.
□ | 이득/오프셋용 LUT(컬러) : EasyImage::GainOffset, |
□ | 컬러 교정용 LUT: EColorLookup::Calibrate, |
□ | 컬러 밸런스용 LUT: EColorLookup::WhiteBalance, |
□ | EColorLookup::ConvertFromRGB, EColorLookup::ConvertToRGB. |
이 색상 LUT는 EasyColor::Transform과 같은 변환 작업에 사용되거나 정량화 되지 않은 값(연속, [0,1]로 정규하됨)을 사용하는 EColorLookup 을 사용하여 사용자 정의 변환을 만들고 소스 및 대상 시스탬을 지정할 수 있습니다.일부 작업에는 변환된 이미지가 저장되는 것을 방지하기 위해 즉석 LUT가 사용되며, 예를 들면 이미지가 RGB 형식일 때 U(YUV 중) 성분을 변경하는 경우가 있습니다.
정밀도 및 속도의 최적의 조합은 IndexBits 및 IndexBits의 선택에 따라 결정되며, 변환된 값의 정밀도는 대체로 색인 비트의 수에 비례합니다.
- 테이블 항목의 수가 적을수록 저장 필요성이 감소하지만, 정밀도 또한 낮아집니다.
- 보간을 사용하지 않으면 실행 시간이 빨라지지만 정밀도가 낮아집니다.보간을 사용하면 성분당 8비트의 정밀도를 복구할 수 있습니다.관련된 변환이 선형(예: YUV에서 RGB로)일 경우, 테이블 항목의 수와 관계없이 보간으로 항상 정확한 결과를 얻을 수 있습니다.
색인 비트 |
항목 수 |
테이블 크기(바이트) |
---|---|---|
4 |
2(3*4) = 4,096 |
14,739 |
5 |
2(3*5) = 32,768 |
107,811 |
6 |
2(3*6) = 262,144 |
823,875 |

YUV 이미지는 Format444To422 함수를 사용하여 4:4:4에서 4:2:2 형식으로(또는 Format 422 To 444으로 변환 가능) 변환하면 시각적 품질의 저하 없이 최소화할 수 있습니다.
- 4:4:4 형식은 픽셀당 3바이트의 정보를 사용합니다.
- 4:2:2 형식은 픽셀당 2바이트의 정보를 사용합니다.
이 형식은 다음과 같이 U 및 V 크로마의 짝수 픽셀을 Y 루마의 짝수 및 홀수 픽셀과 함께 저장합니다.
Y[짝수] U[짝수] Y[홀수] V[짝수]

컬러 이미지에는 연속 색조 이미지의 세 컬러 평면이 포함됩니다.
회색조 이미지가 컬러 시스템의 성분이 될 수 있습니다.

EasyColor에서 한 번에 한 평면을 또는 세 평면 모두를 함께 변경하거나 추출할 수 있습니다.See Compose, Decompose, GetComponent, SetComponent.
이 작업에서 컬러 LUT를 사용하여 즉석에서 변환할 수 있으며, 명도, 채도, 색조 평면으로부터 RGB 이미지를 구축할 수 있습니다.
EasyColor 기능은 Windows 비트맵 형식의 인터리브 컬러 평면(파랑, 녹색, 빨강 픽셀이 각각 서로 이어짐)을 지원하는 데 필요한 인터리브/언인터리브 작업을 수행합니다.

그 요령은 256 컬러의 정규 색역을 정의하여 각 컬러가 해당 회색조 값으로 픽셀에 할당되도록 하는 것입니다.
유사 컬러 음영을 정의하려면 임의 시스템의 색 공간 내에서 궤도를 지정해야 합니다.그리고 그리기 기능 색상표(이미지 및 벡터 그리기 참조)를 사용하여 유사 컬러를 정의한 다음, 다른 컬러 이미지처럼 저장하거나 변환할 수 있습니다.
회색조 및 유사 컬러 이미지

이 EasyColor 프로세스는 EasyObject 에서 더 나은 블롭 생성을 위해 레이블이 적용된 이미지 세그먼터와 사용할 수 있는 레이어 색인을 사용하여 일련의 고유 컬러를 선택하고 각 픽셀을 가장 가까운 컬러와 연결합니다.
원시(raw) 이미지 및 세그먼트 이미지(3색)