利用OpenCV的threshold函数实现双阈值法二值化操作的源码!

来源:互联网 发布:淘宝模特红人男 编辑:程序博客网 时间:2024/06/06 13:35

直接上源码吧,很简单,一看就懂,如果你不明白,可以举两个灰度值实际代入进行理解!

源码如下:

源码中用到的图像的下载链接为:http://pan.baidu.com/s/1dFhVUpF

//OpenCV版本2.4.9  //交流QQ2487872782 #include "opencv2/imgproc/imgproc.hpp"#include "opencv2/highgui/highgui.hpp"int main( ){  // 图像读取及判断  cv::Mat srcImage = cv::imread("hand1.jpg");  if( !srcImage.data )       return 1;  // 灰度转换  cv::Mat srcGray;  cv::cvtColor(srcImage, srcGray, CV_RGB2GRAY);  cv::imshow("srcGray", srcGray);  // 初始化阈值参数  const int maxVal = 255;  int low_threshold  = 150;  int high_threshold = 210;  cv::Mat dstTempImage1, dstTempImage2, dstImage;  // 小阈值对源灰度图像进行阈值化操作  cv::threshold( srcGray, dstTempImage1,        low_threshold, maxVal, cv::THRESH_BINARY );  // 大阈值对源灰度图像进行阈值化操作  cv::threshold( srcGray, dstTempImage2,        high_threshold, maxVal,cv::THRESH_BINARY_INV );//要特别注意这里的最后一个参数是INV哦  // 矩阵与运算得到二值化结果  cv::bitwise_and( dstTempImage1,       dstTempImage2, dstImage );  cv::imshow("dstImage", dstImage);  cv::waitKey(0);  return 0;} 

运行结果如下图所示:


-------------------------------------------

欢迎大家加入图像识别技术交流群:271891601,另外,特别欢迎成都从事图像识别工作的朋友交流,我的QQ号2487872782


0 0
原创粉丝点击