您的位置:首页 > 编程语言 > C语言/C++

OpenCV3_C++_Threshold()阈值化处理 实例

2017-10-14 10:42 417 查看

Opencv3 的开发环境安装和导入请看

http://blog.csdn.net/sileixinhua/article/details/71175748

所有的OpenCV3_C++实例代码请看

https://github.com/sileixinhua/OpenCV_C-_tutorials

实例

#include "stdafx.h"
#include <opencv2/opencv.hpp>
#pragma comment(lib,"opencv_world330.lib")

//using namespace cv;
//using namespace std;
//去掉以上两行代码注释之后就可以不用在下面的代码中加上cv::和std::
//cv::为OpenCV的函数库
//std::为C++的标准函数库

int Threshold() {
cv::Mat src, dst;
double thresh = 60.0, maxval = 180.0;
int type = cv::THRESH_BINARY;

const char* filename = "C:\\Code\\FirstOpenCVProgramming\\lena.jpg";

cv::imread(filename).copyTo(src);
if (src.empty()) {
throw("Faild open file.");
}

cv::equalizeHist(src,dst);
thresh = 80.0;
maxval = 210.0;
int number = 0;//0,1,2,3,4

switch (number) {
case 0:type = cv::THRESH_BINARY; break;
case 1:type = cv::THRESH_BINARY_INV; break;
case 2:type = cv::THRESH_TRUNC; break;
case 3:type = cv::THRESH_TOZERO; break;
case 4:type = cv::THRESH_TOZERO_INV; break;
}

cv::threshold(src,dst,thresh,maxval,type);
//图像阈值化处理
//第一个参数为原图像
//第二个参数为处理后的输出图像
//第五个参数为阈值化的状态

cv::imshow("src",src);
cv::imshow("dst", dst);
cv::imwrite("C:\\Code\\FirstOpenCVProgramming\\Threshold.jpg",dst);

cv::waitKey();

return 0;
}

int main()
{
//以下的方法如果想运行,直接把前头的注释去掉即可
//运行代码的时候请改掉filename里的地址
//我的opencv是安装在C盘目录下
//一些目录地址请自行修改一下

Threshold(); //阈值化处理

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: