反射望遠鏡の自作状況のブログ

望遠鏡のネタを中心に自作などの状況をご紹介します。

冷却CCD回路設計(その5)

A/D変換は16ビットモード(2ByteMode)に変更し、FPGAを書き換えました。

テストSWも16ビットに対応できるよう修正して16ビットTIFFの書き出しができるようになりました。 SI7でTIFF画像のヒストグラムを確認すると0-65535になっているのでOKです。

FT2232DのFIFOモードで速度が上がらない問題は、勘違いでFT2232Dは1MByte/Sでフルスピードでした・・・FT2232Hへ変更します(FT2232Hは8Mbyte/S)・・・FT4232Hの手持ちはあるのですがFIFOが使えないようです。 ・・・データシトはよく読みましょう。

 

libtiffで16ビットTIFF画像を出力する場合の例(備忘録)

unsigned width = 3320;
unsigned height =2498;
int i;
WORD* buffer = (WORD *)malloc(width*height * sizeof(WORD));
for (unsigned i = 0; i < width; i++) {
for (unsigned j = 0; j < height; j++) {
buffer[j*width + i] = px[i][j];
}
}
TIFF *image; image = TIFFOpen("test.tif", "w"); //test.tifというファイルをつくる
if (image == NULL) {
return;
}
//TIFFのタグ設定
TIFFSetField(image, TIFFTAG_IMAGEWIDTH, width); //画像幅
TIFFSetField(image, TIFFTAG_IMAGELENGTH, height); //画像の高さ
TIFFSetField(image, TIFFTAG_BITSPERSAMPLE, 16); //画像の深さは16bit
TIFFSetField(image, TIFFTAG_SAMPLESPERPIXEL, 1); //色の数は1(モノクロ)
TIFFSetField(image, TIFFTAG_COMPRESSION, COMPRESSION_NONE);//圧縮なし
TIFFSetField(image, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISBLACK); //0が黒で、最大値が白
TIFFSetField(image, TIFFTAG_FILLORDER, FILLORDER_MSB2LSB);
TIFFSetField(image, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG);
TIFFSetField(image, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT);
TIFFSetField(image, TIFFTAG_XRESOLUTION, 72.0); //横方向解像度
TIFFSetField(image, TIFFTAG_YRESOLUTION, 72.0); //高さ方向解像度
TIFFSetField(image, TIFFTAG_RESOLUTIONUNIT, RESUNIT_CENTIMETER);//解像度の単位はセンチメートル
TIFFSetField(image, TIFFTAG_SOFTWARE, "CCD_TEST"); //ソフトの名前

for (i = 0; i < height; i++)
{
TIFFWriteScanline(image, buffer + i * width, i, 0);
}
TIFFClose(image);
free(buffer);