core.jpg
這個(gè)是本次的例圖
pinghw.jpg
這個(gè)是轉(zhuǎn)灰度的圖
qrcode_binary.jpg
這個(gè)是應(yīng)用直方圖均衡化然后二值化的圖
Threshold_output1.jpg
這個(gè)是未應(yīng)用均衡化直方圖,然后二值化的圖
#include "opencv2/imgproc.hpp"
#include "opencv2/imgcodecs.hpp"
#include "opencv2/highgui.hpp"
#include <opencv2/imgproc/types_c.h>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <vector>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
using std::cout;
Mat src; Mat src_gray; Mat binary;
int main( int argc, char ** argv[] )
{
src = imread( "core.jpg", 1 );
Mat src_all=src.clone();
//彩色圖轉(zhuǎn)灰度圖
cvtColor( src, src_gray, CV_BGR2GRAY );
//對(duì)圖像進(jìn)行平滑處理
blur( src_gray, src_gray, Size(3,3) );
//使灰度圖象直方圖均衡化
// equalizeHist( src_gray, src_gray );
namedWindow("src_gray");
imshow("src_gray",src_gray);
imwrite("pinghw.jpg", src_gray);
Scalar color = Scalar(1,1,255 );
Mat threshold_output;
vector<vector<Point> > contours,contours2;
vector<Vec4i> hierarchy;
Mat drawing = Mat::zeros( src.size(), CV_8UC3 );
Mat drawing2 = Mat::zeros( src.size(), CV_8UC3 );
Mat drawingAllContours = Mat::zeros( src.size(), CV_8UC3 );
//otsu閥值進(jìn)行二值化
threshold(src_gray, threshold_output, 0, 255, THRESH_BINARY | THRESH_OTSU);
看來(lái)直方圖均衡化造成了負(fù)面影響,可以驗(yàn)證后直方圖均衡是否對(duì)后續(xù)產(chǎn)生影響,阔馋。。待續(xù)