3-1門檻值的調整(二值化)

3-1門檻值的調整(二值化)

程式說明:


運行結果:

   此部分先將影像分成三個通道,取綠色通道做二值化的部分
   高於100的值設定成255,低於100的則為0。

binary


範例程式:


#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <vector>

int main(int argc, char** argv)
{
    cv::Mat img, imgResize;
    img = cv::imread("Image.jpg");

    //顯示一些影像的特性
    if (img.data)
    {
       //將影像縮小四倍
       int width = img.cols;
       int height = img.rows;
       cv::resize(img, imgResize, cv::Size(width/4, height/4));

       //利用vector來儲存不同channel的值
       std::vector splitImage;
       //將影像的RGB分開
       cv::split(imgResize, splitImage);

       cv::Mat dst;
       cv::threshold(splitImage[1], dst, 100, 255, cv::THRESH_BINARY); //大於100以上的亮度 給值255

       cv::imshow("Bchannel", splitImage[0]);
       cv::imshow("Gchannel", splitImage[1]);
       cv::imshow("Rchannel", splitImage[2]);

       cv::imshow("BinaryImage", dst);

       cv::waitKey(0);

    }
    else
    {
       std::cout << "讀不到影像" << std::endl;
       return -1;
    }
    return 0;
}