Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用纹理阈值图像?用tesseract进行识别_C++_Opencv_Image Processing_Tesseract_Threshold - Fatal编程技术网

C++ 如何使用纹理阈值图像?用tesseract进行识别

C++ 如何使用纹理阈值图像?用tesseract进行识别,c++,opencv,image-processing,tesseract,threshold,C++,Opencv,Image Processing,Tesseract,Threshold,源图像: 目的地图像: 代码: cv::Mat锐化Lena; cv::Mat kernel=(cv::Mat_(3,3)您可以尝试使用或算法,例如 这些将执行得更好,特别是MSER及其变体CSER被设计用于检测文本状结构。您可以尝试使用具有开放形态学操作的二进制阈值。以下是我的结果和代码片段: 您可以使用轮廓区域或形态学处理来消除噪声,即小点。希望这对您有所帮助!我现在使用的是adaptiveThreshold(),我不知道如何开始,实现第三张图片的效果。你正在使用的图像分辨率是什么?

源图像:

目的地图像:

代码:

cv::Mat锐化Lena;
cv::Mat kernel=(cv::Mat_(3,3)您可以尝试使用或算法,例如


这些将执行得更好,特别是MSER及其变体CSER被设计用于检测文本状结构。

您可以尝试使用具有开放形态学操作的二进制阈值。

以下是我的结果和代码片段:


您可以使用轮廓区域或形态学处理来消除噪声,即小点。希望这对您有所帮助!

我现在使用的是adaptiveThreshold(),我不知道如何开始,实现第三张图片的效果。你正在使用的图像分辨率是什么?建议使用更高分辨率的图像以获得最佳OCR效果。我知道,但使用手机摄像头,环境因素很大。比你大!确实有了很大改进。cv::Mat kernel2(3,3,cv_8UC1,0);cv::morphologyEx(matBinary,matBinary,cv::MORPH_CLOSE,kernel2,cv::Point(1,1),1);
cv::Mat sharpenedLena;
cv::Mat kernel = (cv::Mat_<float>(3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);
cv::filter2D(matGrey, sharpenedLena, matGrey.depth(), kernel);
cv::adaptiveThreshold(sharpenedLena, matBinary, 255,    cv::ADAPTIVE_THRESH_GAUSSIAN_C, CV_THRESH_BINARY, 55, 30);
cv::Mat dst_img1;
//cv::GaussianBlur(matBinary, dst_img1, cv::Size(3,3), 0, 0);
cv::medianBlur(matBinary, dst_img1, 3);

UIImage *addrUIImage = [ImageUtil UIImageFromCVMat:dst_img1];
[self recognizeImageWithTesseract:addrUIImage withLauange:1];
Mat mSource_Bgr,mSource_Gray,mSource_Hsv,mThreshold;
mSource_Bgr= imread(FileName_S.c_str(),1);

namedWindow("Source Image",WINDOW_AUTOSIZE);
imshow("Source Image",mSource_Bgr);

cvtColor(mSource_Bgr,mSource_Hsv,COLOR_BGR2HSV);

mSource_Hsv = mSource_Hsv + Scalar(0,0,-25); //Subtracting 25 from all the Pixel Values
cvtColor(mSource_Hsv,mSource_Bgr,COLOR_HSV2BGR);// Back to BGR Just for Debug purpose
imshow("Improved Darkness",mSource_Bgr);
imwrite(FileName_S+"_Res.bmp",mSource_Bgr);

cvtColor(mSource_Bgr,mSource_Gray,COLOR_BGR2GRAY); // for Adaptive Thresholding the input Image

adaptiveThreshold(mSource_Gray,mThreshold,255,ADAPTIVE_THRESH_GAUSSIAN_C,THRESH_BINARY,59,10);
imshow("Adaptive Thres",mThreshold);
imwrite(FileName_S+"_Thres.bmp",mThreshold);