📄 gatherdlg.cpp
字号:
}
}
rgbF.R=rgbF.R/((x11-x)*(y11-y));
rgbF.G=rgbF.G/((x11-x)*(y11-y));
rgbF.B=rgbF.B/((x11-x)*(y11-y));
return rgbF;
}
void CGatherDlg::OnButton1()
{
// TODO: Add your control notification handler code here
m_list.ResetContent();
CClientDC pDC(this);
HBITMAP hbitmap=(HBITMAP)LoadImage(NULL,
"F:/科大/课件/模式识别/Gather/p2_test1.bmp",//s4b
IMAGE_BITMAP,
0,
0,
LR_LOADFROMFILE
);
bitmap.Attach(hbitmap);
dcComp.CreateCompatibleDC(&pDC);
dcComp.SelectObject(&bitmap);
bitmap.GetObject(sizeof(bmInfo),&bmInfo);
//GetClientRect(rect);
pDC.StretchBlt(
// handle to destination DC
0, // x-coord of destination upper-left corner
0, // y-coord of destination upper-left corner
bmInfo.bmWidth,//500,// // width of destination rectangle
bmInfo.bmHeight,// 700,// // height of destination rectangle
&dcComp, // handle to source DC
0, // x-coord of source upper-left corner
0, // y-coord of source upper-left corner
bmInfo.bmWidth, // width of source rectangle
bmInfo.bmHeight, // height of source rectangle
SRCCOPY // raster operation code
);
GetbmpSize(bmInfo);
StoreRGB(bmInfo);
// PintRGB(bmInfo);
ReleaseDC(&pDC);
}
void CGatherDlg::OnButton2()
{
// TODO: Add your control notification handler code here
m_list.ResetContent();
CClientDC pDC1(this);
HBITMAP hbitmap1=(HBITMAP)LoadImage(NULL,
"F:/科大/课件/模式识别/Gather/p2_test2.bmp",
IMAGE_BITMAP,
0,
0,
LR_LOADFROMFILE
);
bitmap1.Attach(hbitmap1);
dcComp1.CreateCompatibleDC(&pDC1);
dcComp1.SelectObject(&bitmap1);
bitmap1.GetObject(sizeof(bmInfo1),&bmInfo1);
//GetClientRect(rect);
pDC1.StretchBlt(
// handle to destination DC
0, // x-coord of destination upper-left corner
0, // y-coord of destination upper-left corner
bmInfo1.bmWidth,//500,// // width of destination rectangle
bmInfo1.bmHeight,// 700,// // height of destination rectangle
&dcComp1, // handle to source DC
0, // x-coord of source upper-left corner
0, // y-coord of source upper-left corner
bmInfo1.bmWidth, // width of source rectangle
bmInfo1.bmHeight, // height of source rectangle
SRCCOPY // raster operation code
);
GetbmpSize(bmInfo1);
StoreRGB(bmInfo1);
// PintRGB(bmInfo1);
ReleaseDC(&pDC1);
}
BOOL CGatherDlg::GetbmpSize(BITMAP bm)
{
m_wide=bm.bmWidth;
m_hieght=bm.bmHeight;
wide=m_wide;
hieght=m_hieght;
UpdateData(FALSE);
return TRUE;
}
BOOL CGatherDlg::StoreRGB(BITMAP bm1)
{
int rs=0;
int gs=0;
int bs=0;
COLORREF Colorstore;
CClientDC pDC3(this);
for(i=0;i<wide;i++)
{ for(j=0;j<hieght;j++)
{
Colorstore = pDC3.GetPixel(i,j); //获取当前鼠标点像素值
rs=GetRValue(Colorstore);
gs=GetGValue(Colorstore);
bs=GetBValue(Colorstore);
rdata[i][j]=rs;
gdata[i][j]=gs;
bdata[i][j]=bs;
}
}
i=0;
j=0;
return TRUE;
ReleaseDC(&pDC3);
}
void CGatherDlg::ShowRGB(int x, int y, int x1, int y1,int BiaoZhi)
{
CString str;
// CString str1;
if(BiaoZhi==0)
{
if(jj==0)
{str.Format("%d %s %f %f %f",1,"红",rgb1[jj].R,rgb1[jj].G,rgb1[jj].B);}
if(jj==1)
{str.Format("%d %s %f %f %f",2,"绿",rgb1[jj].R,rgb1[jj].G,rgb1[jj].B);}
if(jj==2)
{str.Format("%d %s %f %f %f",3,"蓝",rgb1[jj].R,rgb1[jj].G,rgb1[jj].B);}
if(jj==3)
{str.Format("%d %s %f %f %f",4,"黄",rgb1[jj].R,rgb1[jj].G,rgb1[jj].B);}
if(jj==4)
{str.Format("%d %s %f %f %f",5,"品红",rgb1[jj].R,rgb1[jj].G,rgb1[jj].B);}
if(jj==5)
{str.Format("%d %s %f %f %f",6,"青",rgb1[jj].R,rgb1[jj].G,rgb1[jj].B);}
if(jj==6)
{str.Format("%d %s %f %f %f",7,"暗紫",rgb1[jj].R,rgb1[jj].G,rgb1[jj].B);}
if(jj==7)
{str.Format("%d %s %f %f %f",8,"暗青",rgb1[jj].R,rgb1[jj].G,rgb1[jj].B);}
if(jj==8)
{str.Format("%d %s %f %f %f",9,"天蓝",rgb1[jj].R,rgb1[jj].G,rgb1[jj].B);}
if(jj==9)
{str.Format("%d %s %f %f %f",10,"白",rgb1[jj].R,rgb1[jj].G,rgb1[jj].B);}
//m_list.InsertString(jj,str1);
//str.Format("%d %d %d %d %d",x,y,rdata[x][y],gdata[x][y],bdata[x][y]);
m_list.InsertString(jj+1,str);
jj++;
/* //m_list.InsertString(jj,str1);
for(i=x;i<x1;i++)
{ for(j=y;j<y1;j++)
{
str.Format("%d %d %d %d %d",i,j,rdata[i][j],gdata[i][j],bdata[i][j]);
//str.Format("%d %d %d %d %d",i,j,rgb[jj].R,rgb[jj].G,rgb[jj].B);
m_list.InsertString(jj+1,str);
jj++;
}
}
*/
}
if(BiaoZhi==1)
{
if(jj==0)
{str.Format("%d %s %d %d %d %d %d",1,"红",x,y,rdata[x][y],gdata[x][y],bdata[x][y]);}
if(jj==1)
{str.Format("%d %s %d %d %d %d %d",2,"绿",x,y,rdata[x][y],gdata[x][y],bdata[x][y]);}
if(jj==2)
{str.Format("%d %s %d %d %d %d %d",3,"蓝",x,y,rdata[x][y],gdata[x][y],bdata[x][y]);}
if(jj==3)
{str.Format("%d %s %d %d %d %d %d",4,"黄",x,y,rdata[x][y],gdata[x][y],bdata[x][y]);}
if(jj==4)
{str.Format("%d %s %d %d %d %d %d",5,"品红",x,y,rdata[x][y],gdata[x][y],bdata[x][y]);}
if(jj==5)
{str.Format("%d %s %d %d %d %d %d",6,"青",x,y,rdata[x][y],gdata[x][y],bdata[x][y]);}
if(jj==6)
{str.Format("%d %s %d %d %d %d %d",7,"暗紫",x,y,rdata[x][y],gdata[x][y],bdata[x][y]);}
if(jj==7)
{str.Format("%d %s %d %d %d %d %d",8,"暗青",x,y,rdata[x][y],gdata[x][y],bdata[x][y]);}
if(jj==8)
{str.Format("%d %s %d %d %d %d %d",9,"天蓝",x,y,rdata[x][y],gdata[x][y],bdata[x][y]);}
if(jj==9)
{str.Format("%d %s %d %d %d %d %d",10,"白",x,y,rdata[x][y],gdata[x][y],bdata[x][y]);}
//m_list.InsertString(jj,str1);
//str.Format("%d %d %d %d %d",x,y,rdata[x][y],gdata[x][y],bdata[x][y]);
m_list.InsertString(jj+1,str);
jj++;
}
if(BiaoZhi==2)
{
if(y1==0)
{str.Format("%d %s %f %f %f",1,"红",rgb1[y1].R,rgb1[y1].G,rgb1[y1].B);}
if(y1==1)
{str.Format("%d %s %f %f %f",2,"绿",rgb1[y1].R,rgb1[y1].G,rgb1[y1].B);}
if(y1==2)
{str.Format("%d %s %f %f %f",3,"蓝",rgb1[y1].R,rgb1[y1].G,rgb1[y1].B);}
if(y1==3)
{str.Format("%d %s %f %f %f",4,"黄",rgb1[y1].R,rgb1[y1].G,rgb1[y1].B);}
if(y1==4)
{str.Format("%d %s %f %f %f",5,"品红",rgb1[y1].R,rgb1[y1].G,rgb1[y1].B);}
if(y1==5)
{str.Format("%d %s %f %f %f",6,"青",rgb1[y1].R,rgb1[y1].G,rgb1[y1].B);}
if(y1==6)
{str.Format("%d %s %f %f %f",7,"暗紫",rgb1[y1].R,rgb1[y1].G,rgb1[y1].B);}
if(y1==7)
{str.Format("%d %s %f %f %f",8,"暗青",rgb1[y1].R,rgb1[y1].G,rgb1[y1].B);}
if(y1==8)
{str.Format("%d %s %f %f %f",9,"天蓝",rgb1[y1].R,rgb1[y1].G,rgb1[y1].B);}
if(y1==9)
{str.Format("%d %s %f %f %f",10,"白",rgb1[y1].R,rgb1[y1].G,rgb1[y1].B);}
m_list.InsertString(jj+1,str);
jj++;
}
}
void CGatherDlg::SetZero(int lei,int rrr)
{
if(rrr==0)
{
for(i=0;i<wide*hieght;i++)
{
for(j=0;j<lei;j++)
{
gdt[j][i]=0;
rdt[j][i]=0;
bdt[j][i]=0;
}
}
}
if(rrr==1)
{
for(i=0;i<lei;i++)
rgb[i].R=0;
rgb[i].G=0;
rgb[i].B=0;
}
}
BOOL CGatherDlg::PintRGB(int juleimoshi)
{
COLORREF crColor1;
CClientDC pDC4(this);
COLORREF Colorstore1;
COLORREF Colorstore2;
int kkk=0;
Colorstore1 = pDC4.GetPixel(1,hieght+1);
for(i=0;i<wide;i++,kkk++)
{
for(j=0;j<hieght;j++)
{
Colorstore1 = pDC4.GetPixel(i,j); //获取当前点像素值
//原点(400,10)
if(juleimoshi==1)//r,g
{
if(kkk>255)
{
kkk=0;
}
crColor1=pDC4.SetPixel( rdata[i][j]+xstart,kkk+ystart, Colorstore1);
m=1;
}
if(juleimoshi==2)//r,b
{
if(kkk>255)
{
kkk=0;
}
crColor1=pDC4.SetPixel( gdata[i][j]+xstart,kkk+ystart, Colorstore1);
m=1;
}
if(juleimoshi==3)//b,g
{
if(kkk>255)
{
kkk=0;
}
crColor1=pDC4.SetPixel( bdata[i][j]+xstart,kkk+ystart, Colorstore1);
m=1;
}
if(juleimoshi==4)//r,g
{crColor1=pDC4.SetPixel( rdata[i][j]+xstart,gdata[i][j]+ystart, Colorstore1);
m=1;
}
if(juleimoshi==5)//r,b
{crColor1=pDC4.SetPixel( rdata[i][j]+xstart,bdata[i][j]+ystart, Colorstore1);
m=1;
}
if(juleimoshi==6)//b,g
{crColor1=pDC4.SetPixel( bdata[i][j]+xstart,gdata[i][j]+ystart, Colorstore1);
m=1;
}
if(juleimoshi==0)
{
crColor1=pDC4.SetPixel( i+600,j, Colorstore2);
}
}
}
if(juleimoshi==0)
{
for(i=0;i<xs1-xs;i++)
{ for(j=0;j<ye-ys;j++)
{
crColor1=pDC4.SetPixel( i+xs,j+ys, RGB(0,0,0));
}
}
for(i=0;i<xstart1-xstart;i++)
{ for(j=0;j<yend-ystart;j++)
{
crColor1=pDC4.SetPixel(i+xstart,j+ystart, RGB(0,0,0));
}
}
}
i=0;
j=0;
ReleaseDC(&pDC4);
return TRUE;
}
int CGatherDlg::Min(double *min, int leishu)
{
double t,tt;
int t1,tt1;
double *minmize=min;
int mun[10];
int * munmize=mun;
for(int i=0;i<leishu;i++)
{
mun[i]=i;
}
t1=mun[0];
t=*min;
for( i=1;i<leishu;i++)
{
minmize++;
munmize++;
if(t>*minmize)
{
//tt=t;
//t=*minmize;
//*minmize=tt;
tt1=t1;
t1=*munmize;
*munmize=tt1;
}
}
return t1;
}
BOOL CGatherDlg::GetCrentPoint(BITMAP bmpoint, CPoint pointbm)
{
if(pointbm.y<=bmpoint.bmHeight&&pointbm.x<=bmpoint.bmWidth)
{y=pointbm.y;
x=pointbm.x;}
else
{y=0;
x=0;}
UpdateData(FALSE);
return TRUE;
}
void CGatherDlg::GatherPintRGB(int leishu)
{
COLORREF crColor1;
CClientDC pDC4(this);
//COLORREF Colorstore1;
int single[10]={0,0,0,0,0,0,0,0,0,0};
int ii=0;
for(i=0;i<wide;i++)
{
for(j=0;j<hieght;j++)
{
int single[10]={0,0,0,0,0,0,0,0,0,0};
for(int lei=0;lei<leishu;lei++)
{
//////////////////////三维模式////////////////////////////
if(juleimoshi==7)
{
if(bdt[lei][ii]==1&&gdt[lei][ii]==1&&rdt[lei][ii]==1)
{
single[lei]=1;
}
if(bdt[lei][ii]==0&&gdt[lei][ii]==0&&rdt[lei][ii]==0)
{
single[lei]=0;
}
}
/////////////////////一维模式///////////////////////////////////////
if(juleimoshi==1)
{
if(rdt[lei][ii]==1)
{
single[lei]=1;
}
if(rdt[lei][ii]==0)
{
single[lei]=0;
}
}
if(juleimoshi==2)
{
if(gdt[lei][ii]==1)
{
single[lei]=1;
}
if(gdt[lei][ii]==0)
{
single[lei]=0;
}
}
if(juleimoshi==3)
{
if(bdt[lei][ii]==1)
{
single[lei]=1;
}
if(bdt[lei][ii]==0)
{
single[lei]=0;
}
}
///////////////////二维模式///////////////////////////////////
if(juleimoshi==4)
{
if(gdt[lei][ii]==1&&rdt[lei][ii]==1)
{
single[lei]=1;
}
if(gdt[lei][ii]==0&&rdt[lei][ii]==0)
{
single[lei]=0;
}
}
if(juleimoshi==5)
{
if(bdt[lei][ii]==1&&rdt[lei][ii]==1)
{
single[lei]=1;
}
if(bdt[lei][ii]==0&&rdt[lei][ii]==0)
{
single[lei]=0;
}
}
if(juleimoshi==6)
{
if(bdt[lei][ii]==1&&gdt[lei][ii]==1)
{
single[lei]=1;
}
if(bdt[lei][ii]==0&&gdt[lei][ii]==0)
{
single[lei]=0;
}
}
///////////////////////////////////////////////////////////////////////
}
//if(single[0]==1)
// {
// crColor1=pDC4.SetPixel( i+601,j+250, RGB(255,0,0));
// }
//if(single[0]==0&&single[1]==1)
//{
// crColor1=pDC4.SetPixel( i+601,j+250, RGB(0,255,0));
//}
//crColor1=pDC4.SetPixel( i+601,j+250, RGB(255,0,0));
if(single[0]==1&&single[1]==0&&single[2]==0&&single[3]==0&&single[4]==0
&&single[5]==0&&single[6]==0&&single[7]==0&&single[8]==0&&single[9]==0)
{
crColor1=pDC4.SetPixel( i+600,j, RGB(255,0,0));
}
if(single[0]==0&&single[1]==1&&single[2]==0&&single[3]==0&&single[4]==0
&&single[5]==0&&single[6]==0&&single[7]==0&&single[8]==0&&single[9]==0)
{
crColor1=pDC4.SetPixel( i+600,j, RGB(0,255,0));
}
if(single[0]==0&&single[1]==0&&single[2]==1&&single[3]==0&&single[4]==0
&&single[5]==0&&single[6]==0&&single[7]==0&&single[8]==0&&single[9]==0)
{
crColor1=pDC4.SetPixel( i+600,j, RGB(0,0,255));
}
if(single[0]==0&&single[1]==0&&single[2]==0&&single[3]==1&&single[4]==0
&&single[5]==0&&single[6]==0&&single[7]==0&&single[8]==0&&single[9]==0)
{
crColor1=pDC4.SetPixel( i+600,j, RGB(255,255,0));
}
if(single[0]==0&&single[1]==0&&single[2]==0&&single[3]==0&&single[4]==1
&&single[5]==0&&single[6]==0&&single[7]==0&&single[8]==0&&single[9]==0)
{
crColor1=pDC4.SetPixel( i+600,j, RGB(255,0,255));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -