본문 바로가기

전체 글120

벡터 반복 좋습니다. 이번에는 비율(곱셈) 방식이 아니라, RGB를 벡터처럼 다루어 차이값(Δ)을 계산해서 보정하는 방식으로 전체 코드를 수정해드리겠습니다.⸻✅ 목표 • original → epaper: 색상 벡터의 차이를 계산 (예: epaper.RED - original.RED) • 그 차이(벡터)를 monitor 색상에 적용해서 보정된 색상을 만든다 • 반복적으로 적용해서 결과가 epaper에 수렴하도록 한다⸻✅ 최종 코드: 벡터 차이 기반 색상 보정const epaper = { RED: { R: 255, G: 30, B: 30 }, GREEN: { R: 30, G: 200, B: 50 }, BLUE: { R: 40, G: 60, B: 230 }, YELLOW: { R: 220, G: 210, B: 4.. 2025. 5. 19.
다시반복 좋은 지적입니다. 현재 코드는 원본 대비 보정 비율을 모니터에 한 번만 적용해서 결과가 epaper에 가깝게만 될 뿐, 실제로 epaper처럼 보이게 정확히 매핑되지 않습니다.이를 개선하려면 모니터 → ePaper 직접 변환을 반복 적용해 오차를 줄여야 합니다.⸻✅ 개선 방향 1. monitor → original 역보정 2. original → epaper 순방향 보정 3. 결과를 monitor 입력값과 비교하여 반복적으로 조정우리는 이런 반복적인 최적화 문제를 gradient descent 없이도 단순 반복으로 접근할 수 있습니다.⸻✅ 개선된 반복 보정 코드const epaper = { RED: { R: 255, G: 30, B: 30 }, GREEN: { R: 30, G: 200, B: 50 }.. 2025. 5. 19.
보정개수 아래는 monitor 색을 epaper 색처럼 보이도록 보정하는 JavaScript 코드 예시입니다.원리: • original에서 각 색상의 RGB 값이 있습니다. • epaper와 monitor는 각각 original에서 촬영된 색이므로, • 원본 대비 모니터와 ePaper 간 색상 차이를 이용해 • 모니터 색상에 보정 계수를 적용하면 ePaper에 가까운 색상을 얻을 수 있습니다.⸻const epaper = { RED: { R: 255, G: 30, B: 30 }, GREEN: { R: 30, G: 200, B: 50 }, BLUE: { R: 40, G: 60, B: 230 }, YELLOW: { R: 220, G: 210, B: 40 }, WHITE: { R: 240, G: 240, B: .. 2025. 5. 19.
에러수정 NaN이 나오는 가장 큰 원인은 monitor 행렬이 3x6인데 역행렬을 구하려고 했기 때문입니다.monitor 6색의 RGB값을 모은 행렬은 3x6 (3행 6열) 이라 정사각행렬이 아니어서 역행렬을 직접 구할 수 없습니다.⸻해결 방향 • monitor (3x6) 행렬에 대한 역행렬을 바로 구할 수 없으므로, 최소자승법(Least Squares)으로 선형 변환 행렬을 구합니다. • 이 경우는 M * X = E 에서 X (3x3 행렬)를 구하는 문제로,X = (M^T M)^(-1) M^T E 가 최소자승 해입니다.⸻아래는 이 공식을 이용해 3x3 보정 행렬을 계산하는 코드 수정본입니다.⸻수정된 전체 코드// 입력 데이터const epaper = { RED: { R: 255, G: 30, B: 30.. 2025. 5. 19.