我有一个我想要放大的图像并以高细节查看。它的大小不明,大多是黑白的,上面有一些文字。当我放大文本变得不可读时,我认为没有足够的像素/纹素显示,所以我将图像放大了2倍。现在我缩放了它,它仍然是不可读的。
然后我开始使用OpenCV:
void resizeFirst(){
Mat src = imread( "../floor.png", 1 );
Mat tmp;
resize(src,tmp,Size(),3,3,INTER_CUBIC);
Mat dst = tmp.clone();
Size s(3,3);
//blur( tmp, dst, s, Point(-1,-1) );//homogeneous
GaussianBlur(tmp, dst, s, 3);//gaussian
//medianBlur ( tmp, dst, 5 );//median
//bilateralFilter ( tmp, dst, 5, 5*2, 5/2 );
addWeighted(tmp, 1.5, dst, -0.5, 0, dst);
imwrite("sharpenedImage.png",dst);
}
void blurFirst(){
Mat src = imread( "../floor.png", 1 );
Size s(3,3);
Mat dst;
GaussianBlur(src, dst, s, 3);//gaussian
addWeighted(src, 2, dst, -1, 0, dst);
Mat tmp;
resize(dst,tmp,Size(),3,3,INTER_CUBIC);
imwrite("sharpenedImage0.png",tmp);
}
并且输出更好但图像仍然不清晰。有没有人对如何在放大图像时保持文字清晰有任何想法?
编辑:下面是样本图片。
第一个是较小的res原件,第二个是我调整大小并尝试按照下面的高斯锐化
答案 0 :(得分:2)
调整大小功能提供不同的插值方法
INTER_NEAREST nearest-neighbor interpolation
INTER_LINEAR bilinear interpolation (used by default)
INTER_AREA resampling using pixel area relation. It may be the preferred method for image decimation, as it gives moire-free results. But when the image is zoomed, it is similar to the INTER_NEAREST method
INTER_CUBIC bicubic interpolation over 4x4 pixel neighborhood
INTER_LANCZOS4 Lanczos interpolation over 8x8 pixel neighborhood
尝试所有插值方法并使用最适合您的方法。然而,调整大小功能会改变图像的宽高比。