디지털 카메라를 사용하여 이미지를 수집하고 있습니다. 처음에는 모노 카메라를 사용했지만 최근에는 컬러 카메라로 업그레이드했습니다. 나는 그레이 스케일 팔레트 팔레트를 변경하는 코드의이 비트를 발견 할 때까지 모노 카메라로 좀 팔레트 문제가되었다 pbmi는 BITMAPINFO *입니다이 회색조 팔레트를 색상 팔레트로 수정하려면 어떻게합니까?
for(int i=0; i<256; i++)
{
pbmi->bmiColors[i].rgbRed = BYTE(i);
pbmi->bmiColors[i].rgbGreen = BYTE(i);
pbmi->bmiColors[i].rgbBlue = BYTE(i);
pbmi->bmiColors[i].rgbReserved = BYTE(0);
}
합니다.
이렇게하면 모노 카메라에서 잘 작동합니다. 하지만 이제는 컬러 카메라로 이미지를 그레이 스케일로 만들고 싶지 않습니다. 그러나 그 코드 조각을 제거하면 모노 카메라로 이전과 같은 팔레트 문제가 발생합니다. 그래서 제가 전에했던 것처럼 비슷한 것을 할 필요가 있고 팔레트를 만들 필요가있는 것 같습니다. 이번에는 컬러 팔레트뿐입니다.
for(int i=0,a = 0; i < 64; i++)
{
pbmi->bmiColors[i].rgbRed = BYTE(a);
pbmi->bmiColors[i+64].rgbGreen = BYTE(a);
pbmi->bmiColors[i+64+64].rgbBlue = BYTE(a);
pbmi->bmiColors[i+64+64+64].rgbReserved = BYTE(0);
a += 4;
}
//This created a palette consisting only of cyan, yellow, and magenta colors.
//Didn't work.
for(int i=0,r=0,g=0,b=0; b <= 255; i++)
{
if(r >= 256)
{
r = 0;
g++;
}
if(g >= 256)
{
g = 0;
b++;
}
pbmi->bmiColors[i].rgbRed = BYTE(r);
pbmi->bmiColors[i].rgbGreen = BYTE(g);
pbmi->bmiColors[i].rgbBlue = BYTE(b);
pbmi->bmiColors[i].rgbReserved = BYTE(0);
r++;
}
//Here I was trying to basically count up hexadecimally from 000000 to FFFFFF.
//Caused an access violation error.
또한 pbmi을 변경 한 후 그 각각을 시도했다 :
//// INFO ////
BITMAPINFO* pbmi = (BITMAPINFO*)alloca(sizeof(BITMAPINFOHEADER) +
sizeof(RGBQUAD)*256);
pbmi->bmiHeader.biSize = sizeof (pbmi->bmiHeader);
pbmi->bmiHeader.biWidth = 2752;
pbmi->bmiHeader.biHeight = -2200;
pbmi->bmiHeader.biPlanes = 1;
pbmi->bmiHeader.biBitCount = 8;
pbmi->bmiHeader.biCompression = BI_RGB;
pbmi->bmiHeader.biSizeImage = 0;
pbmi->bmiHeader.biXPelsPerMeter = 14173;
pbmi->bmiHeader.biYPelsPerMeter = 14173;
pbmi->bmiHeader.biClrUsed = 0;
pbmi->bmiHeader.biClrImportant = 0;
지금까지, 나는 다음과 같은 시도 : 참고로
, 여기에 pbmi의 나머지 설정입니다 -> bmiHeader.biBitCount를 16, 24 W 32로 변경하십시오.
내 질문은 :내가 제공 한 BITMAPINFO 설정을 기반으로 색상 표를 만드는 방법은 무엇입니까? 간단한 RGB 파레트를 만들려고하는 경우
당신은 카메라 설명서를 확인해야합니다. 각 프레임마다 몇 바이트가 생성됩니까? –
각 이미지는 2752x2200이며 6054400 픽셀입니다. 그래서 (정확한지 모르겠다면) 각 이미지는 6054400 * 3 바이트 크기라고 가정합니다. – xcdemon05
가정하지 마십시오. 나는 비디오 형식을 해독하려고 시도하고있다. –