Tiff超高壓縮圖片

使用libtiff庫,壓縮8位深度二值化圖片至1位深度

 
////path = "C:\\Users\\CodeFlag\\Desktop\\input_0_sel.png";

//Mat img = imread(path,IMREAD_COLOR);
//if(img.channels()>1)
// cvtColor(img,img,CV_BGR2GRAY);
//cv::threshold(img, img, 0, 255, CV_THRESH_BINARY+CV_THRESH_OTSU);
//TIFF *imageWrite = TIFFOpen((path+"out1.tif").c_str(), "w");
//if (imageWrite)
//{
// TIFFSetField(imageWrite, TIFFTAG_IMAGEWIDTH, img.cols);
// TIFFSetField(imageWrite, TIFFTAG_IMAGELENGTH, img.rows);
// TIFFSetField(imageWrite, TIFFTAG_COMPRESSION, COMPRESSION_CCITT_T6);
// TIFFSetField(imageWrite, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG);
// TIFFSetField(imageWrite, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISBLACK);
// TIFFSetField(imageWrite, TIFFTAG_BITSPERSAMPLE, 1);
// TIFFSetField(imageWrite, TIFFTAG_SAMPLESPERPIXEL, 1);
// uchar *bits = (uchar*)img.data;
// int widthnew = 0;
// widthnew = ((img.cols+7) / 8);
// uchar * data = new uchar[widthnew];
// for (int i = 0; i < img.rows; i++)
// {
// memset(data, 0, widthnew);
// for (int j = 0; j < widthnew; j++)
// {
// uchar temp_data = 0;
// for (int k = 0; k < 8; k++)
// {
// int temp_value = 0;
// if ((8*j+k)
// {
// temp_value = 1 << (7 - k);
// temp_data += temp_value;
// }
// }
// data[j] = temp_data;

// }
// TIFFWriteScanline(imageWrite, &data[0], i, 0);
// }
// TIFFClose(imageWrite);
//}
//else
//{
// std::cout << "Open file error!" << std::endl;
// exit(1);
//}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章