📄 image_identity.java~52~
字号:
package fuzzy_identity;
import java.util.*;
public class Image_Identity {
private 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 int temp;
private Hm_close hm;
public Image_Identity(Vector v) //调用图形模板象素数组的初始化方法
{
point_v=v;
Init_rectangle();
for(int i=25;i<35;i++)
{
Init_circle(i);
}
for(int m=0;m<100;m++)
for(int n=0;n<100;n++)
{
temp=n;
if(circle[m][n]==1&&circle[m][++temp]==0&&circle[m][++temp]==1)
circle[m][--temp]=1;
}
Init_image();
}
public void Init_rectangle() //初始化正方形模板象素数组
{
for(int i=15;i<25;i++)
for(int j=15;j<84;j++)
rectangle[i][j]=1;
for(int i=75;i<84;i++)
for(int j=15;j<84;j++)
rectangle[i][j]=1;
for(int i=15;i<84;i++)
for(int j=15;j<25;j++)
rectangle[i][j]=1;
for(int i=15;i<84;i++)
for(int j=75;j<84;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=-5;a<=5;a++)
for(int b=-5;b<=5;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[y][x]=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(circle[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 + -