1
0

Change color space to YCrCb

This commit is contained in:
2020-01-23 13:11:23 +01:00
parent ba4b1dbcf2
commit 83c2b9db5b
+5 -5
View File
@@ -13,16 +13,16 @@ void CLAHE::loadFile(const QString &path)
int type = tmp.depth(); int type = tmp.depth();
_scale = type==CV_8U ? 1.0/255 : 1.0/65535; _scale = type==CV_8U ? 1.0/255 : 1.0/65535;
tmp.convertTo(tmp, CV_32F, _scale); tmp.convertTo(tmp, CV_32F, _scale);
cv::cvtColor(tmp, tmp, cv::COLOR_BGR2Lab); cv::cvtColor(tmp, tmp, cv::COLOR_BGR2YCrCb);
cv::split(tmp, _image); cv::split(tmp, _image);
_image[0].convertTo(_lumImage, type, 0.01/_scale); _image[0].convertTo(_lumImage, type, 1/_scale);
} }
void CLAHE::saveFile(const QString &path) void CLAHE::saveFile(const QString &path)
{ {
cv::Mat tmp; cv::Mat tmp;
cv::merge(_image, 3, tmp); cv::merge(_image, 3, tmp);
cv::cvtColor(tmp, tmp, cv::COLOR_Lab2BGR); cv::cvtColor(tmp, tmp, cv::COLOR_YCrCb2BGR);
tmp.convertTo(tmp, _lumImage.depth(), 1/_scale); tmp.convertTo(tmp, _lumImage.depth(), 1/_scale);
cv::imwrite(path.toLocal8Bit().data(), tmp); cv::imwrite(path.toLocal8Bit().data(), tmp);
} }
@@ -32,7 +32,7 @@ void CLAHE::apply(float clipLimit, int kernelSize)
cv::Mat lum; cv::Mat lum;
cv::Ptr<cv::CLAHE> clahe = cv::createCLAHE(clipLimit, cv::Size(kernelSize, kernelSize)); cv::Ptr<cv::CLAHE> clahe = cv::createCLAHE(clipLimit, cv::Size(kernelSize, kernelSize));
clahe->apply(_lumImage, lum); clahe->apply(_lumImage, lum);
lum.convertTo(_image[0], CV_32F, 100*_scale); lum.convertTo(_image[0], CV_32F, _scale);
double min, max; double min, max;
cv::minMaxLoc(_image[0], &min, &max); cv::minMaxLoc(_image[0], &min, &max);
qDebug() << min << max; qDebug() << min << max;
@@ -42,7 +42,7 @@ QPixmap CLAHE::getImage() const
{ {
cv::Mat tmp; cv::Mat tmp;
cv::merge(_image, 3, tmp); cv::merge(_image, 3, tmp);
cv::cvtColor(tmp, tmp, cv::COLOR_Lab2RGB); cv::cvtColor(tmp, tmp, cv::COLOR_YCrCb2RGB);
tmp.convertTo(tmp, CV_8U, 255); tmp.convertTo(tmp, CV_8U, 255);
QImage ret(tmp.data, tmp.cols, tmp.rows, tmp.step1(), QImage::Format_RGB888); QImage ret(tmp.data, tmp.cols, tmp.rows, tmp.step1(), QImage::Format_RGB888);
//ret.bits();//perform deep copy of tmp.data pointer //ret.bits();//perform deep copy of tmp.data pointer