Hao*_*est 2 c opencv image-processing
我有一个小的灰度图像,上面有一个数字.为了尝试我的OCR方法,我必须将其转换为二进制.
如果我使用带有127作为阈值的cvThreshold,由于数字骨架周围的渐变,图像看起来全部搞砸了.我试过但在应用阈值之前找不到任何图像锐化功能.
有人有指针吗?
 变
 变  这很粗糙.
 这很粗糙.
编辑:二进制,我的意思是二进制图像,其中图像中的像素是0(黑色)或255(白色).
EDIT2:哦,看着修改日志让我傻笑.
首先使用阈值变量.您可以找到满足您的结果,而无需向您的应用程序添加任何其他处理.使用120,110或100怎么样?
无论如何,我没有得到与使用127作为参数相同的输出.也许你正在做一些不同的事情.检查我的代码:
IplImage* input_img = cvLoadImage("6.png", CV_LOAD_IMAGE_UNCHANGED);
if(!input_img)
{
    std::cout << "ERROR: Failed to load input image" << std::endl;
    return -1;
}
cvThreshold(input_img, input_img, 127, 255, CV_THRESH_BINARY);
if( !cvSaveImage("out.png", input_img) )
{
    std::cout << "ERROR: Failed to write image file" << std::endl;
}    
cvReleaseImage(&input_img);
输入: 输出:
 输出: