c++ - OpenCV 调整质量

标签 c++ opencv image-processing

我正在尝试使用 OpenCV 调整一组图像的大小。分辨率正确,但图像质量下降。但是,如果我通过 Apple Preview 手动调整大小,图像质量不会受到影响。我正在将所有这些图像缩小,而不是将它们放大。这是比较质量的两张图片。请注意自行车的锯齿状辐条和锯齿状上管:

调整大小错误:

Bad OpenCV resize

良好的调整大小:

Good Apple Preview resize

这是我的代码:

cv::Mat srcimg = cv::imread(src_filepath);
cv::Mat destimg = cv::imread(lowres_path);
cv::Size img_size = srcimg.size();
int img_width = img_size.width;
int img_height = img_size.height;
double percentage = 1000.0/(img_width);
double new_height = img_height * percentage;
cv::Size new_size = cv::Size(1000.0, new_height);
cv::resize(srcimg, destimg, new_size,0,0,CV_INTER_LANCZOS4);
cv::imwrite(lowres_path, destimg);

我弄乱了插值,但这似乎对图像没有影响。

最佳答案

好吧,明白了。我将其切换回 CV_INTER_AREA 并明确设置压缩设置:

cv::resize(srcimg, destimg, new_size,0,0,CV_INTER_AREA);
vector<int> compression_params;
compression_params.push_back(CV_IMWRITE_JPEG_QUALITY);
compression_params.push_back(100);
cv::imwrite(lowres_path, destimg);

关于c++ - OpenCV 调整质量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37200707/

相关文章:

animation - 使用 OpenCV 的情绪/情绪检测(快乐到悲伤)

python - 如何在 python 中更改图像捕获日期?

c++ - 与守护进程交谈

c++ - WSAEventSelect,一个事件,多个套接字

c++ - Qt - 依赖类

python - 寻找纯色图像

python - Numpy - 创建重叠的 3D 子数组作为内存效率高的向量

python - 如何使用 Boost Python 将 Python 派生类升级到它的 c++ 基类?

c++ - opencv cv::Ptr 的动态转换

c++ - 使用 OpenCV 和机器学习的简单对象检测