📄 image_identity.java~35~
字号:
package fuzzy_identity;
import java.util.*;
public class Image_Identity {
private static byte image[][]=new byte[100][100];
private static byte rectangle[][]=new byte[100][100];;
private static byte circle[][]=new byte[100][100];
private Vector point_v;
private point p;
private Hm_close hm;
public Image_Identity(Vector v) //调用图形模板象素数组的初始化方法
{
point_v=v;
Init_rectangle();
for(int i=30;i<49;i++)
{
Init_circle(i);
}
Init_image();
}
public void Init_rectangle() //初始化正方形模板象素数组
{
for(int i=5;i<15;i++)
for(int j=5;j<94;j++)
rectangle[i][j]=1;
for(int i=85;i<94;i++)
for(int j=5;j<94;j++)
rectangle[i][j]=1;
for(int i=15;i<85;i++)
for(int j=5;j<15;j++)
rectangle[i][j]=1;
for(int i=15;i<85;i++)
for(int j=85;j<94;j++)
rectangle[i][j]=1;
}
void CirPot(int x0,int y0,int x,int y)
{
SetPixel (x0,y0,x,y);
SetPixel (x0,y0,y,x);
}
void SetPixel (int x0,int y0,int x,int y)
{
circle[x0+ x][y0+y]=1;
circle[x0-x][y0+ y]=1;
circle[x0+ x][y0-y]=1;
circle[x0-x][y0-y]=1;
circle[x0+y][y0+x]=1;
circle[x0-y][y0+x]=1;
circle[x0+y][y0-x]=1;
circle[x0-y][y0-x]=1;
}
public void Init_circle(int radius) //初始化圆形模板象素数组
{
int x,y,d,x0,y0;
x=0;
y=radius; //圆半径
x0=y0=49; //圆心坐标
d=(int)3-2*30;
while(x<y)
{
CirPot(x0,y0,x,y);
if (d < 0)
{
d=d+4*x+6;
}
else
{
d=d+4*(x-y)+10;
y--;
}
x++;
}
if(x==y)
CirPot(x0,y0,x,y);
}
public void Init_image() //初始化待识别图形模板象素数组
{
int x=0;
int y=0;
for(int i=0;i<point_v.size()-1;i++)
{
p=(point)point_v.elementAt(i);
for(int a=-4;a<=4;a++)
for(int b=-4;b<=4;b++)
{
x=p.x+a;
y=p.y+b;
if(x<0)
{
x=0;
}
if(y<0)
{
y=0;
}
if(x>99)
{
x=99;
}
if(y>99)
{
y=99;
}
image[x][y]=1;
}
}
}
public void a()
{
hm=new Hm_close();
System.out.println(hm.exe(image,rectangle,100,100));
System.out.println(hm.exe(image,circle,100,100));
for(int i=0;i<100;i++)
{for(int j=0;j<100;j++)
{
System.out.print(rectangle[i][j]);
}
System.out.println("\n");
}
System.out.println("-------------------------------------------------------------------------------------------------------------------------------------------------------");
for(int i=0;i<100;i++)
{for(int j=0;j<100;j++)
{
System.out.print(image[i][j]);
}
System.out.println("\n");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -