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

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

資源簡介

在傳統SRG算法的基礎進行改進,利用顏色空間的像素與其鄰域的顏色差異及相對歐式距離自動選擇種子;應用SRG技術由已知的種子生長出初始分割區域;根據融合了顏色空間和鄰接關系的區域距離對初始區域進行分級合并。

資源截圖

代碼片段和文件信息

#include?“stdafx.h“
#include?“iostream.h“
#include?“stdio.h“
#include?“stdlib.h“
#include?“string.h“
#include?“cv.h“
#include?“highgui.h“
#include?“math.h“
#include?“fstream.h“

#define?height?227
#define?width?303
int??K;//種子區域的數量
int?DX[4]={100-1};
int?DY[4]={01-10};
int?Di[8]={100-1-111-1};
int?Dj[8]={01-10-1-111};
double?Data[width][height][3];//原圖像的BGR值
double?pData[width][height][3];//轉化后的圖像像素值
double?SD[width][height][3];//Lab的標準方差
double?D[width][height];//歸一化總的方差
double?ccenter[width*height][3];//種子區域的平均像素值
double?limen;//相似度閾值
double?limen_dis=0.022;//距離閾值
double?H[width][height];//相似度
double?d_max[width][height];//與鄰域的最大距離
int?c_seed[width*height][2];//種子的坐標
int?seed_num;//種子的數量
int?Flag[width][height]={0};//標記圖像各點是否列入數組T中
int?Lable[width][height]={0};//標記圖像各點所處的種子區域
double?Distance[width*height];//某像素點與其鄰域的最大距離
int?T_num=0;//數組T中像素點的數量
int?T[height*width][3];//數組T用于存放待處理的像素點,分別存放點的橫坐標、縱坐標以及與種子區域的距離
int?Top[width*height]={0};//種子區域中像素點的數量
double?Low_num[width*height]={0};
double?Low_sum[width*height]={0};
double?diff[width*height];
double?ostu[width*height];
double?sum[width][height][3];
double?**dr;//相鄰區域的距離
//距離最短的相鄰區域的區域號
int?min_x;
int?min_y;

//函數聲明
double?dis(double?*bdouble?*c);//定義相對歐式距離
void?remove_back(int?a);//將數組T中的元素依次向后移一位
void?remove_ahead();//將數組T中的元素依次向前移一位
void?insert_T(int?xxint?yyint?idouble?d);//將某一像素點插入數組T中
void?update_center(int?iint?xint?y);//重新計算種子區域的像素平均值
void?init();//將所有種子區域的鄰域象素記錄在數組T中,按其與區域距離的大小升序排列
void?process();//處理數組T中的第一個像素點,并將其歸入某一種子區域
void?sign();//將各種子區域的邊界標記出來
//定義的兩個區域的顏色距離
double?color_dis(int?num1int?num2)
{
double?mntdis;
m=n=t=0;
for(int?i=0;i<3;i++)
{
n+=(ccenter[num1][i]-ccenter[num2][i])*(ccenter[num1][i]-ccenter[num2][i]);?
????m+=ccenter[num1][i]*ccenter[num1][i];
t+=ccenter[num2][i]*ccenter[num2][i];
}
n=sqrt(n);
m=sqrt(m);
t=sqrt(t);
if(m>t)?dis=((Top[num1]*Top[num2])/(Top[num1]+Top[num2]))*(n/t);
else
dis=((Top[num1]*Top[num2])/(Top[num1]+Top[num2]))*(n/m);
return?dis;
}
//計算所有相鄰區域的距離
void?caculate_dis()
{
int?ijkxxyyid1id2;
dr=new?double*?[sizeof(double*)*K];
for(i=0;i {?
dr[i]=new?double[sizeof(double)*K];
}
for(i=0;i {?
for(k=0;k dr[i][k]=0;
}
for(j=2;j {
for(i=2;i {
for(k=0;k<4;k++)
{
xx=i+DX[k];
yy=j+DY[k];
if(Lable[i][j]!=Lable[xx][yy])
{
id1=Lable[i][j]-1;
id2=Lable[xx][yy]-1;
dr[id1][id2]=color_dis(id1id2);
}
}
}
}
}
//尋找相鄰區域的最短距離
?double?min_dis()
?{
?int?ij;
?double?min;
?for(i=0;i {
for(j=i+1;j {
if(dr[i][j]!=0)
{
min=dr[i][j];
break;
}
}
?}
?for(i=0;i {
for(j=i+1;j {
if(dr[i][j] {
min=dr[i][j];
min_x=i;
min_y=j;
}
}
?}
return?min;
?}
//區域合并后,將相關數據更新

評論

共有 條評論

相關資源