利用OpenCV实现图像的阈值分割

原创 2012年03月26日 09:18:51
对lena、baboon图像进行阈值分割,像素大于100的被赋值为255,小于100被赋为0.

    #include <stdio.h>
    #include <cv.h>
    #include <highgui.h>
    void sum_rgb( IplImage* src, IplImage* dst ) {
    // Allocate individual image planes.
    IplImage* r = cvCreateImage( cvGetSize(src), IPL_DEPTH_8U, 1 );
    IplImage* g = cvCreateImage( cvGetSize(src), IPL_DEPTH_8U, 1 );
    IplImage* b = cvCreateImage( cvGetSize(src), IPL_DEPTH_8U, 1 );
    // Temporary storage.
    IplImage* s = cvCreateImage( cvGetSize(src), IPL_DEPTH_8U, 1 );
    // Split image onto the color planes.
    cvSplit( src, r, g, b, NULL );
    // Add equally weighted rgb values.
    cvAddWeighted( r, 1./3., g, 1./3., 0.0, s );
    cvAddWeighted( s, 2./3., b, 1./3., 0.0, s );
    // Truncate values above 100.
    cvThreshold( s, dst, 100, 255, CV_THRESH_BINARY );
    cvReleaseImage( &r );
    cvReleaseImage( &g );
    cvReleaseImage( &b );
    cvReleaseImage( &s );
    }
    int main(int argc, char** argv)
    {
    // Create a named window with a the name of the file.
    cvNamedWindow( argv[1], 1 );
    // Load the image from the given file name.
    IplImage* src = cvLoadImage( argv[1] );
    IplImage* dst = cvCreateImage( cvGetSize(src), src->depth, 1);
    sum_rgb( src, dst);
    // Show the image in the named window
    cvShowImage( argv[1], dst );
    // Idle until the user hits the "Esc" key.
    while( 1 ) { if( (cvWaitKey( 10 )&0x7f) == 27 ) break; }
    // Clean up and don’t be piggies
    cvDestroyWindow( argv[1] );
    cvReleaseImage( &src );
    cvReleaseImage( &dst );
    return 0;

    }




opencv 图像阈值分割图像

最简单的图像分割的方法。 应用举例:从一副图像中利用阈值分割出我们需要的物体部分(当然这里的物体可以是一部分或者整体)。这样的图像分割方法是基于图像中物体与背景之间的灰度差异,而且此分割属于像素...
  • qq_18343569
  • qq_18343569
  • 2015年07月31日 19:17
  • 1450

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

利用OpenCV的threshold函数实现双阈值法二值化操作的源码!
  • wenhao_ir
  • wenhao_ir
  • 2016年06月02日 14:23
  • 2982

图像阈值分割Matlab版

图像阈值分割是一个非常简单的算法。对图像像素点,大于阈值,则认为是目标;小于阈值,则认为是背景。而现在遇到的阈值分割却需要完成如下的多个功能:1、基本的阈值分割:    大于阈值,则认为是目标;小于,...
  • kofsky
  • kofsky
  • 2007年11月09日 01:20
  • 16927

数字图像处理 - 图像分割 - 阈值处理

最近工作需要,开始学习图像处理啦。我们使用的软件是Adaptive Vision Studio。不过是收费的哟。无基础学习。所以先加强一下子基础啦咯 前期准备:直方图灰度直方图:不同灰度值的像素分量...
  • Brain011
  • Brain011
  • 2017年04月08日 09:45
  • 553

灰度图像的自动阈值分割(Otsu 法)

灰度图像的自动阈值分割(Otsu 法)机器视觉领域许多算法都要求先对图像进行二值化。这种二值化操作阈值的选取非常重要。阈值选取的不合适,可能得到的结果就毫无用处。今天就来讲讲一种自动计算阈值的方法。这...
  • liyuanbhu
  • liyuanbhu
  • 2015年10月24日 20:04
  • 19107

图像阈值分割---迭代算法

图像阈值分割---迭代算法 1.处理流程:        1.为全局阈值选择一个初始估计值T(图像的平均灰度)。        2.用T分割图像。产生两组像素:G1有灰度值大于T的像素组成,G2...
  • ily6418031hwm
  • ily6418031hwm
  • 2013年01月24日 14:26
  • 3050

matlab基于遗传算法的最大熵值法的双阈值图像分割

利用最佳直方图熵法(KSW熵法)及传统遗传算法实现灰度图像二阈值分割
  • chongshangyunxiao321
  • chongshangyunxiao321
  • 2016年03月28日 16:18
  • 3593

图像的阈值分割(迭代法选择阈值)

迭代法阈值选择算法是对双峰法的改进,他首先选择一个近似的阈值T,将图像分割成两个部分,R1和R2,计算出区域R1和R2的均值u1和u2,再选择新的 阈值T=(u1+u2)/2; 重复上面的过程,知道u...
  • qq_18343569
  • qq_18343569
  • 2015年07月27日 13:58
  • 6041

基于MATLAB的图像自适应阈值分割程序

最近写了一个基于直方图的图像阈值分割作业,代码如下: clear all; g=imread('Test_Img_1.jpg');  %g=rgb2gray(I); %thresh(g,99,...
  • chenzhaowei521
  • chenzhaowei521
  • 2016年11月30日 17:18
  • 1113

灰度图像--图像分割 阈值处理之局部阈值

局部阈值处理简介
  • TonyShengTan
  • TonyShengTan
  • 2015年03月09日 11:14
  • 3542
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用OpenCV实现图像的阈值分割
举报原因:
原因补充:

(最多只允许输入30个字)