我是OpenCV和图像处理的新手,我不确定如何解决我的问题。
我有一张用iPhone制作的文档照片,我想将该文档转换为黑白图像。我尝试使用阈值,但文本效果不太好(有点模糊和不可读)。我想输入与原始图片相同的文字,只有黑色,背景为白色。我能做什么?
附言当我为文档的一部分做照片时,文字很大,那么结果就可以了。

我将不胜感激。

这是我使用的示例图像及其结果:

最佳答案

我的尝试,可能比您的可读性更高:

IplImage * pRGBImg  = 0;
pRGBImg = cvLoadImage(input_file.c_str(), CV_LOAD_IMAGE_UNCHANGED);
if(!pRGBImg)
{
    std::cout << "ERROR: Failed to load input image" << std::endl;
    return -1;
}

// Allocate the grayscale image
IplImage * pGrayImg = 0;
pGrayImg = cvCreateImage(cvSize(pRGBImg->width, pRGBImg->height), pRGBImg->depth, 1);

// Convert it to grayscale
cvCvtColor(pRGBImg, pGrayImg, CV_RGB2GRAY);

// Dilate
cvDilate(pGrayImg, pGrayImg, 0, 0.2);

cvThreshold(pGrayImg, pGrayImg, 30, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);
cvSmooth(pGrayImg, pGrayImg, CV_BLUR, 2, 2);

cvSaveImage("out.png", pGrayImg);

10-04 19:30