색상 심도 조정을 통해 색상 감소를 수행하고 싶습니다. 이 예와 같이opencv 및 LUT의 색상 심도 감소
:
제 CGA 이미지 해상도는 세번째 HAM이고, 두 번째는 EGA된다. 나는 cv :: LUT로하고 싶다. 왜냐하면 나는 그것을하는 것이 더 좋은 방법이라고 생각하기 때문이다. 이 코드와 그레이 스케일로 수행 할 수 있습니다
Mat img = imread("test1.jpg", 0);
uchar* p;
Mat lookUpTable(1, 256, CV_8U);
p = lookUpTable.data;
for(int i = 0; i < 256; ++i)
p[i] = 16 * (i/16)
LUT(img, lookUpTable, reduced);
원래 :
색상 감소 :
을하지만 난 색상으로 그것을하려고하면 내가 이상한 결과를 얻을 ..
:
imgColor = imread("test1.jpg");
Mat reducedColor;
int n = 16;
for (int i=0; i<256; i++) {
uchar value = floor(i/n) * n;
cout << (int)value << endl;
lut.at<Vec3b>(i)[2]= (value >> 16) & 0xff;
lut.at<Vec3b>(i)[1]= (value >> 8) & 0xff;
lut.at<Vec3b>(i)[0]= value & 0xff;
}
LUT(imgColor, lut, reducedColor);
어디에서 LUT를 완전히 이해하고 사용할 수 있습니까? 나는 opencv 문서를 보았지만 그 문법은 엄격했다. 이 'LUT 이미지'의 값을 저장하고 다른 동일한 값에 적용하려는 경우 수행 할 작업 – AHF
LUT의 목적은 찾아보기 테이블에 따라 이미지의 색상을 변경하는 것입니다. 이미지 분할에서 전처리 단계로 색상 해상도를 낮추는 등 다양한 목적을 가질 수 있습니다. http://en.wikipedia.org/wiki/Colour_look-up_table – xperroni
동일한 LUT 변환을 다른 이미지에 적용하는 경우 위의 'colorReduce()'함수를 수정하여 lookup table에 대한 참조를 인자로 사용한다면'lookupTable()'또는 적절한 것으로 생각되는 다른 메소드를 별도로 호출하여 테이블을 계산하면된다. – xperroni