OTSU自适应阈值求法与粒子群算法的合作,将OTSU算法作为粒子群算法的适应值函数,来计算每个粒子的适应度与最优阈值相比较,经过3000次迭代最后取得优化后的阈值
原图:
经过联合算法优化的双阈值为90 ,140
将背景像素置0:
效果图:
利用所取得的阈值就可以将图像背景和目标区分开来,利用所得阈值二值化后
效果图:
通过效果图可知将人这个目标从背景中分割出来了
源代码:
#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
#include "cxcore.h"
#include "time.h"
using namespace std;
#define rnd( low,uper) ((int)(((double)rand()/(double)RAND_MAX)*((double)(uper)-(double)(low))+(double)(low)+0.5))
/*************************************************************8888
粒子群算法变量的说明
******************************************************************************/
const int number = 20;
int antThreshold[number][2];//以阈值作为粒子
int vect[number][2];//更新的速度
float pb