현재 8 비트 비트 맵을 읽고 픽셀 데이터와 색상 표를 절약하기 위해 C++을 사용하고 있습니다. 나는 현재 내 색상 표 배열에 저장 한 :팔레트 정보로 8 비트 비트 맵 자르기
RGBQUAD* colours;
가 나는 픽셀에 비트 맵을 모든 방향에서 가장 가까운 독특한 픽셀의 색상을 발견하고 자르기 가겠어요 궁금 해서요. 외부 라이브러리없이 C++을 사용하고 있습니다.
현재 8 비트 비트 맵을 읽고 픽셀 데이터와 색상 표를 절약하기 위해 C++을 사용하고 있습니다. 나는 현재 내 색상 표 배열에 저장 한 :팔레트 정보로 8 비트 비트 맵 자르기
RGBQUAD* colours;
가 나는 픽셀에 비트 맵을 모든 방향에서 가장 가까운 독특한 픽셀의 색상을 발견하고 자르기 가겠어요 궁금 해서요. 외부 라이브러리없이 C++을 사용하고 있습니다.
나는 대신 특정 바퀴를 다시 구현하기 위해 노력하는, ImageMagick처럼 쉽게 사용할 라이브러리를 사용하는 것이 좋습니다.
다른 곳에서 잘 구현 된 것을 구현해야하는 이유는 다음 두 가지뿐입니다. 1) 숙제 2) 실제로 기존 코드보다 훨씬 효율적으로 수행 할 수 있다고 생각하는 이유는 두 가지입니다. 그런 다음, 요구하지 않기 때문에
"가까운 독특한 픽셀 색상"에 가까운 의미 ...)에는 "숙제"태그가 없기 때문에 그것은 1)이 될 수 없으며이 될 수 없습니다 색 공간? 절대적인 용어 (R/G/B) 또는 인간의 감각? 따라서 #0002FE
을 주시면 색상 표에 #0000FF
이 표시 될 수 있습니다.
"표준"단순 C++ 방법은 범위와 술어를 사용하는 std::min_element()
입니다. 귀하의 경우, 그 범위는 귀하의 컬러 테이블이며 술어는 원하는 색상의 근접성입니다. 예 : [targetColor](RGBQUAD tableEntry) { return abs(RGBdiff(tableEntry, targetColor)); }
그레이 스케일로 변환 한 다음 가장자리 감지 알고리즘을 사용하는 것이 가장 좋은 방법이라고 생각했습니다. 어느 누구도 이것에 대한 생각을 할 수 있습니까? – Aequitas