本帖最后由 erp80 于 2019-6-2 16:37 编辑
- <div class="blockcode"><blockquote>#include"opencv.hpp"
- #include"highgui.hpp"
- #include"xfeatures2d.hpp"
- #include <opencv2/xfeatures2d/nonfree.hpp>
- using namespace cv;
- using namespace std;
- using namespace xfeatures2d;
- int main()
- {
- using namespace cv;
- string mFile = "F:/tt.jpg";
- // 调整自适应阈值方法的变量
- int g_AdaptiveMethod = 0;
- // 调整阈值类型的变量
- int g_ThresholdType =1;
- //
- int g_Size = 1;
- Mat srcImage = imread(mFile);
- Mat dstImage;
- //【3】使用高斯滤波消除噪声
- GaussianBlur(srcImage, dstImage, Size(7, 7), 0, 0, BORDER_DEFAULT);
- //双边滤波
- bilateralFilter(dstImage, srcImage, 8, 50, 200);
- //腐蚀
- Mat structElement2 = getStructuringElement(MORPH_RECT, Size(5, 5), Point(-1, -1));
- erode(srcImage, srcImage, structElement2);
- //膨胀
- Mat structElement1 = getStructuringElement(MORPH_RECT, Size(8, 8), Point(-1, -1));
- dilate(srcImage, srcImage, structElement1);
- medianBlur(srcImage, srcImage, 9);
- resize(srcImage, srcImage, Size(srcImage.cols / 1.25, srcImage.rows / 1.25));
- if (srcImage.channels() == 3)
- {
- cvtColor(srcImage, srcImage, COLOR_BGR2GRAY);
- }
- // 对图像进行自适应阈值二值化
- adaptiveThreshold(srcImage, dstImage, 255, g_AdaptiveMethod, g_ThresholdType,11, g_Size);
- //缩小
- resize(dstImage, dstImage, Size(dstImage.cols / 2, dstImage.rows / 2));
- //显示图
- namedWindow("contours");
- imshow("contours", dstImage);
- waitKey();
- return 0;
- }
复制代码
|