13 - 形态学操作实际应用二:验证码识别
代码部分:
#include<opencv2/opencv.hpp>;
#include<iostream>;
#include<opencv2/imgproc/types_c.h>;
using namespace std;
using namespace cv;
int main(int argc, char* argv) { // 13 - 形态学操作实际应用二:验证码识别
Mat source1;
source1 = imread("F:\\OpenCV-Test\\TestPicture\\SourcePicture1\\YZM2.PNG");
if (source1.empty()) { printf("can not load image ... \n"); return -1; }
imshow("source1原图像", source1);
Mat source1Gray;
cvtColor(source1,source1Gray,6);
imshow("source1Gray", source1Gray);
Mat source1GrayBin;
adaptiveThreshold(~source1Gray, source1GrayBin, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 15, -2);
imshow("source1GrayBin", source1GrayBin);
Mat kernel = getStructuringElement(MORPH_RECT, Size(3,3), Point(-1, -1));
Mat temp, result;
erode(source1GrayBin, temp, kernel);
dilate(temp, result, kernel);
//morphologyEx(source1GrayBinaryzation,resultXline,MORPH_OPEN,Xline); // 开操作
bitwise_not(result, result);
imshow("result", result);
waitKey(0);
return 0;
}
代码效果演示: