Change color space to YCrCb
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user