• 大小: 4.51MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-21
  • 语言: 其他
  • 标签: OpenCV  二值化  阈值  

资源简介

这是一段基于OpenCV的图像二值化实例代码,阈值可以通过滑动条来调节,可以观察不同阈值。具体分析见博客http://blog.csdn.net/primetong/article/details/79211648

资源截图

代码片段和文件信息

//- 图像的二值化 -  
//- by 陈胃痛 -

//cvThreshold()函数功能:采用Canny方法对图像进行边缘检测
//函数原型:
//void cvThreshold( //函数说明:
//const CvArr* src //第一个参数表示输入图像,必须为单通道灰度图。
//CvArr* dst //第二个参数表示输出的边缘图像,为单通道黑白图。
//double threshold //第三个参数表示阈值
//double max_value //第四个参数表示最大值。
//int threshold_type //第五个参数表示运算方法。
//);
//在OpenCV的imgproc\types_c.h中可以找到运算方法的定义。
///* Threshold types ↓*/
//enum
//{ CV_THRESH_BINARY = 0  /* value = value > threshold ? max_value : 0       */
// CV_THRESH_BINARY_INV = 1  /* value = value > threshold ? 0 : max_value       */
// CV_THRESH_TRUNC = 2  /* value = value > threshold ? threshold : value   */
// CV_THRESH_TOZERO = 3  /* value = value > threshold ? value : 0           */
// CV_THRESH_TOZERO_INV = 4  /* value = value > threshold ? 0 : value           */
// CV_THRESH_MASK = 7
// CV_THRESH_OTSU = 8  /* use Otsu algorithm to choose the optimal threshold value; combine the flag with one of the above CV_THRESH_* values */
//  最后一个是自适应算法取阈值(最大类间方差法),这样前面的第四个参数threshold会无效
//};
#include 
using namespace std;

IplImage *g_pGrayImage = NULL;
IplImage *g_pBinaryImage = NULL;
const char *pstrWindowsBinarytitle = “二值化之后的图像“;

void on_trackbar(int val)
{
// 转为二值图  
cvThreshold(g_pGrayImage g_pBinaryImage val 255 CV_THRESH_BINARY);
// 显示二值图  
cvShowImage(pstrWindowsBinarytitle g_pBinaryImage);
}

int main(int argc char** argv)
{
const char *pstrWindowsSrctitle = “原图 - by Lenna“;
const char *pstrWindowsToolBarName = “二值化阈值“;

// 从文件中加载原图  
IplImage *pSrcImage = cvLoadImage(“Lenna.jpg“ CV_LOAD_IMAGE_UNCHANGED);

// 转为灰度图  Gray = R*0.299 + G*0.587 + B*0.114 (通道顺序B->G->R)
g_pGrayImage = cvCreateImage(cvGetSize(pSrcImage) IPL_DEPTH_8U 1);
cvCvtColor(pSrcImage g_pGrayImage CV_BGR2GRAY);

// 创建二值图  
g_pBinaryImage = cvCreateImage(cvGetSize(g_pGrayImage) IPL_DEPTH_8U 1);

// 显示原图  
cvNamedWindow(pstrWindowsSrctitle CV_WINDOW_AUTOSIZE);
cvShowImage(pstrWindowsSrctitle pSrcImage);
// 创建二值图窗口  
cvNamedWindow(pstrWindowsBinarytitle CV_WINDOW_AUTOSIZE);

// 滑动条    
int nThreshold = 63;
cvCreateTrackbar(pstrWindowsToolBarName pstrWindowsBinarytitle &nThreshold 254 on_trackbar);

on_trackbar(63); //初始阈值的设置,初步调试设为63

cvWaitKey(0);

cvDestroyWindow(pstrWindowsSrctitle);
cvDestroyWindow(pstrWindowsBinarytitle);
cvReleaseImage(&pSrcImage);
cvReleaseImage(&g_pGrayImage);
cvReleaseImage(&g_pBinaryImage);
return 0;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       7353  2017-10-08 21:56  Binarization\Binarization\Binarization.vcxproj

     文件        945  2017-10-08 21:56  Binarization\Binarization\Binarization.vcxproj.filters

     文件      93609  2017-10-08 20:32  Binarization\Binarization\Lenna.jpg

     文件       2725  2018-03-14 20:22  Binarization\Binarization\main.cpp

     文件       1124  2017-09-17 14:56  Binarization\Binarization\OpenCV3.3_VS2013_x64_Debug.props

     文件       1865  2018-03-14 20:22  Binarization\Binarization\x64\Debug\Binarization.log

     文件        175  2018-03-14 20:22  Binarization\Binarization\x64\Debug\Binarization.tlog\Binarization.lastbuildstate

     文件       1342  2018-03-14 20:22  Binarization\Binarization\x64\Debug\Binarization.tlog\cl.command.1.tlog

     文件      59752  2018-03-14 20:22  Binarization\Binarization\x64\Debug\Binarization.tlog\CL.read.1.tlog

     文件       1150  2018-03-14 20:22  Binarization\Binarization\x64\Debug\Binarization.tlog\CL.write.1.tlog

     文件       4054  2018-03-14 20:22  Binarization\Binarization\x64\Debug\Binarization.tlog\link.command.1.tlog

     文件      10480  2018-03-14 20:22  Binarization\Binarization\x64\Debug\Binarization.tlog\link.read.1.tlog

     文件       1122  2018-03-14 20:22  Binarization\Binarization\x64\Debug\Binarization.tlog\link.write.1.tlog

     文件     483212  2018-03-14 20:22  Binarization\Binarization\x64\Debug\main.obj

     文件    1428480  2018-03-14 20:22  Binarization\Binarization\x64\Debug\vc120.idb

     文件    2019328  2018-03-14 20:22  Binarization\Binarization\x64\Debug\vc120.pdb

     文件   17563648  2018-03-14 20:34  Binarization\Binarization.sdf

     文件       1336  2017-10-08 21:56  Binarization\Binarization.sln

    ..A..H.     24064  2018-03-14 20:34  Binarization\Binarization.v12.suo

     文件     105984  2018-03-14 20:22  Binarization\x64\Debug\Binarization.exe

     文件     578768  2018-03-14 20:22  Binarization\x64\Debug\Binarization.ilk

     文件    2886656  2018-03-14 20:22  Binarization\x64\Debug\Binarization.pdb

     目录          0  2018-03-14 20:22  Binarization\Binarization\x64\Debug\Binarization.tlog

     目录          0  2018-03-14 20:22  Binarization\Binarization\x64\Debug

     目录          0  2018-03-14 20:09  Binarization\Binarization\x64

     目录          0  2018-03-14 20:09  Binarization\x64\Debug

     目录          0  2018-03-14 20:22  Binarization\Binarization

     目录          0  2018-03-14 20:09  Binarization\x64

     目录          0  2018-03-14 20:34  Binarization

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

............此处省略2个文件信息

评论

共有 条评论