91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 7KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發布日期: 2021-05-21
  • 語言: C/C++
  • 標簽: FLICM??

資源簡介

FLICM聚類算法是近年來提出的一個模糊C均值算法,它結合了空間鄰域信息和灰度信息,可有效去除雜點的影響。這個版本是根據原作者提供的程序修改成了C版本

資源截圖

代碼片段和文件信息

#include?
#include?
#include?“cv.h“
#include?“highgui.h“
#include?“time.h“




void?IplToMatrix(unsigned?char?*SrcData?float?*DstData?int?step?int?iHeight?int?iWidth)
{
????for(int?h=0;?h {
for(int?w=0;?w {
???DstData[h*iWidth+w]?=?(float)SrcData[h*step+w];
???int?test?=?0;
}
}
}


void?CalcCenters(?float?*image?int?height?int?width?float?*U?int?cNum?float?m?float?*c?)
{
????int?L?=?height*width;
float?sSum;
for(int?k=0;?k {
c[k]?=?0.0;
sSum?=?0.0;
for(int?i=0;?i {
for(int?j=0;?j {
sSum?+=?pow(?U[i*width?+?j?+?k*L]?m?);
c[k]?+=?pow(U[i*width?+?j?+?k*L]m)?*?image[i*width+j];
}
}
int?test1?=?0;
c[k]?/=?sSum;
int?test?=?0;
}
}


void?FLICM_alg(?float?*img?int?height?int?width?float?*Uinit?float?*U?float?*cinit?float?m?int?cNum?int?winSize?int?maxIter?float?thrE)
{
int?sStep?=?(winSize-1)/2;

float?*Uold?=?(float*)malloc(sizeof(float)*height*width*cNum);
float?*c?=?(float*)malloc(sizeof(float)*cNum);
float?*d?=?(float*)malloc(sizeof(float)*cNum);
for(int?i=0;?i {
for(int?j=0;?j {
for(int?k=0;?k {
U[k*height*width?+?i*width?+?j]?=?Uinit[k*height*width?+?i*width?+?j];
Uold[k*height*width?+?i*width?+?j]?=?U[k*height*width?+?i*width?+?j];
}
}
}
for(int?k=0;?k c[k]?=?cinit[k];

int?sweeps?=?0;
float?dMax?=?10.f;
float?vec??=?0.f;
float?sSum?=?0.f;
float?dist?=?0.f;
float?dd?=?0.f;
while(?dMax>thrE?&&?sweeps<=maxIter?)
{
//?Calculation?of?the?new?array?U.
for(int?i=0;?i {
for(int?j=0;?j {
//?for?each?center.
for(int?k=0;?k {
vec?=?img[i*width+j];
sSum?=?fabs(?vec-c[k]?);
for(int?ii=-sStep;?ii<=sStep;?ii++?)
for(int?jj=-sStep;?jj<=sStep;?jj++?)
{
int?x?=?j?+?jj;
int?y?=?i?+?ii;
dist?=?sqrt(?(float)(x-j)*(x-j)?+?(float)(y-i)*(y-i)?);
if(?x>=0?&&?x=0?&&?y {
vec?=?img[y*width?+?x];
sSum?+=?1.f/(1.f?+?dist)*pow(1.f-Uold[y*width+x+k*height*width]?m)?*?fabs(vec-c[k]);
}
}
d[k]?=?sSum;
}

for(int?k=0;?k {
dd?=?d[k];
sSum?=?0.f;
for(int?ii=0;?ii sSum?+=?pow(?dd/d[ii]?1.f/(m-1.f));
U[k*height*width?+?i*width?+?j]?=?1.f?/?sSum;
}
}
}

//?New?center?calculation.
CalcCenters(?img?height?width?U?cNum?m?c?);

dMax?=?-1.f;
//?Copy?new?array?U?to?old?one.
for(int?i=0;?i {
for(int?j=0;?j {
for(int?k=0;?k {
if(?dMax dMax?=?fabs(Uold[k*height*width?+?i*width?+?j]?-?U[k*height*width?+?i*width?+?j

評論

共有 條評論