自定义全局阈值分割

#include<opencv.hpp>
#include<opencv2\highgui\highgui.hpp>
#include<opencv2\imgproc\imgproc.hpp>
#include<iostream>

using namespace std;
using namespace cv;

void globalValue(Mat &src, Mat &dst,int value)
{
	Mat image1;
	image1 = Mat::zeros(src.size(), src.type());
	for (int i = 0; i < src.rows; i++)
	{
		for (int j = 0; j < src.cols; j++)
		{
			if (src.at<uchar>(i, j) > value)
			{
				image1.at<uchar>(i, j) = 255;
			}
			else
			{
				image1.at<uchar>(i, j) = 0;
			}
		}
	}
	image1.copyTo(dst);
}

int main()
{
	Mat image,imagegray,dst_image1,dst_image2;
	image = imread("D:/2015project/picture/1.jpg");
	cvtColor(image, imagegray, CV_BGR2GRAY);
	globalValue(imagegray,dst_image1,100);
	threshold(imagegray, dst_image2, 100, 255, CV_THRESH_BINARY);
	imshow("自定义", dst_image1);
	imshow("opencv自带", dst_image2);
	waitKey(0);
}

 

猜你喜欢

转载自blog.csdn.net/sinat_38998284/article/details/82457105