OpenCV圖像處理:灰度化和二值化


一、圖像二值化基本原理:
對灰度圖像進行處理,設定閾值,在閾值中的像素值將變為1(白色部分),閾值為的將變為0(黑色部分)。

二、圖像二值化處理步驟:

(1)先對彩色圖像進行灰度化

//img為原圖,imgGray為灰度圖
cvtColor(img, imgGray, CV_BGR2GRAY);

(2)對灰度圖進行二值化

//imgGray為灰度圖,result為二值圖像 //100~255為閾值,可以根據情況設定 //在閾值中的像素點將變為0(白色部分),閾值之外的像素將變為1(黑色部分)。
threshold(imgGray, result, 100, 255, CV_THRESH_BINARY)

三、demo

 1 #include<iostream>
 2 #include<opencv2\highgui\highgui.hpp>
 3 #include<opencv2\core\core.hpp>
 4 #include <opencv2\imgproc\imgproc.hpp>
 5  
 6 using namespace std;  7 using namespace cv;  8  
 9 int main() 10 { 11  Mat img, imgGray,result; 12     img = imread("test.jpg"); 13     if (!img.data) { 14         cout << "Please input image path" << endl; 15         return 0; 16  } 17     imshow("原圖", img); 18  cvtColor(img, imgGray, CV_BGR2GRAY); 19     imshow("灰度圖", imgGray); 20     //blur(imgGray, imgGray, Size(3, 3));
21     threshold(imgGray, result, 100, 255, CV_THRESH_BINARY); 22     imshow("二值化后的圖", result); 23     imwrite("二值化的二維碼.jpg", result); 24     cout << "圖片已保存" << endl; 25  waitKey(); 26  
27     return 0; 28 }

四、效果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM