API of TiffDecoder back to what it was - normalizeChannelsNumber moved to protected
test code unified - channels number is tested for other formats as well
This commit is contained in:
parent
109e047a28
commit
88e0127f44
@ -103,11 +103,11 @@ public:
|
|||||||
|
|
||||||
size_t signatureLength() const;
|
size_t signatureLength() const;
|
||||||
bool checkSignature( const string& signature ) const;
|
bool checkSignature( const string& signature ) const;
|
||||||
int normalizeChannelsNumber(int channels) const;
|
|
||||||
ImageDecoder newDecoder() const;
|
ImageDecoder newDecoder() const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void* m_tif;
|
void* m_tif;
|
||||||
|
int normalizeChannelsNumber(int channels) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -99,8 +99,11 @@ public:
|
|||||||
{
|
{
|
||||||
if(ext_from_int(ext).empty())
|
if(ext_from_int(ext).empty())
|
||||||
continue;
|
continue;
|
||||||
for (int num_channels = 1; num_channels <= 3; num_channels+=2)
|
for (int num_channels = 1; num_channels <= 4; num_channels++)
|
||||||
{
|
{
|
||||||
|
if (num_channels == 2) continue;
|
||||||
|
if (num_channels == 4 && ext!=3 /*TIFF*/) continue;
|
||||||
|
|
||||||
ts->printf(ts->LOG, "image type depth:%d channels:%d ext: %s\n", CV_8U, num_channels, ext_from_int(ext).c_str());
|
ts->printf(ts->LOG, "image type depth:%d channels:%d ext: %s\n", CV_8U, num_channels, ext_from_int(ext).c_str());
|
||||||
Mat img(img_r * k, img_c * k, CV_MAKETYPE(CV_8U, num_channels), Scalar::all(0));
|
Mat img(img_r * k, img_c * k, CV_MAKETYPE(CV_8U, num_channels), Scalar::all(0));
|
||||||
circle(img, Point2i((img_c * k) / 2, (img_r * k) / 2), cv::min((img_r * k), (img_c * k)) / 4 , Scalar::all(255));
|
circle(img, Point2i((img_c * k) / 2, (img_r * k) / 2), cv::min((img_r * k), (img_c * k)) / 4 , Scalar::all(255));
|
||||||
@ -116,6 +119,7 @@ public:
|
|||||||
|
|
||||||
CV_Assert(img.size() == img_test.size());
|
CV_Assert(img.size() == img_test.size());
|
||||||
CV_Assert(img.type() == img_test.type());
|
CV_Assert(img.type() == img_test.type());
|
||||||
|
CV_Assert(num_channels == img_test.channels());
|
||||||
|
|
||||||
double n = norm(img, img_test);
|
double n = norm(img, img_test);
|
||||||
if ( n > 1.0)
|
if ( n > 1.0)
|
||||||
@ -124,35 +128,6 @@ public:
|
|||||||
ts->set_failed_test_info(ts->FAIL_MISMATCH);
|
ts->set_failed_test_info(ts->FAIL_MISMATCH);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ext == 3 /*TIFF*/)
|
|
||||||
{
|
|
||||||
/* 4 channels should stay 4 channels */
|
|
||||||
int num_channels = 4;
|
|
||||||
ts->printf(ts->LOG, "image type depth:%d channels:%d ext: %s\n", CV_8U,num_channels, ext_from_int(ext).c_str());
|
|
||||||
Mat img(img_r * k, img_c * k, CV_MAKETYPE(CV_8U, num_channels), Scalar::all(0));
|
|
||||||
circle(img, Point2i((img_c * k) / 2, (img_r * k) / 2), cv::min((img_r * k), (img_c * k)) / 4 , Scalar::all(255));
|
|
||||||
|
|
||||||
string img_path = cv::tempfile(ext_from_int(ext).c_str());
|
|
||||||
ts->printf(ts->LOG, "writing image : %s\n", img_path.c_str());
|
|
||||||
imwrite(img_path, img);
|
|
||||||
|
|
||||||
ts->printf(ts->LOG, "reading test image : %s\n", img_path.c_str());
|
|
||||||
Mat img_test = imread(img_path, CV_LOAD_IMAGE_UNCHANGED);
|
|
||||||
|
|
||||||
if (img_test.empty()) ts->set_failed_test_info(ts->FAIL_MISMATCH);
|
|
||||||
|
|
||||||
CV_Assert(img.size() == img_test.size());
|
|
||||||
CV_Assert(img.type() == img_test.type());
|
|
||||||
CV_Assert(img_test.channels() == 4);
|
|
||||||
|
|
||||||
double n = norm(img, img_test);
|
|
||||||
if ( n > 1.0)
|
|
||||||
{
|
|
||||||
ts->printf(ts->LOG, "norm = %f \n", n);
|
|
||||||
ts->set_failed_test_info(ts->FAIL_MISMATCH);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_JPEG
|
#ifdef HAVE_JPEG
|
||||||
|
Loading…
x
Reference in New Issue
Block a user