zqmcomputer

统计

积分与排名

最新评论

2008年6月9日 #

毕业了还比较忙碌

        大学四年就这样匆匆而过,转眼就马上毕业了。四年的大学生活说长不长说短不短,学得也不是很精通,计算机的发展太快了,我感觉在学校所学的都跟不上社会时代的发展了。有很多东西都得靠自己慢慢学了,感觉好累啊!我不知道我还能不能坚持下去,也许这还跟个人的兴趣爱好的浓厚有关吧。
现在马上要毕业了,事情好多啊,比还没毕业时候忙多了。

posted @ 2008-06-09 14:08 风林芝 阅读(50) | 评论 (0)编辑 收藏

2008年6月6日 #

重装grub的方法及grub相关配置

  重装系统的时候,MBR都会被重写,这样原来的GRUB或LILO 就会不见了,或者由于某些原因使原来的GRUB不见了,就得重装GRUB.
        重装GRUB的方法,任选一种试试:
        1.用安装光盘启动,选择升级安装,再只选安装GRUB.
        2.用安装光盘启动,到BOOT 那里输入 linux rescue     进入救援模式,到出现#命令提示符时输入 chroot   /mnt/sysimage   之后再输入 grub-install   /dev/hda
        3.没有软驱如何修复grub/lilo 引导菜单?
           a.把第一张linux安装盘里的dosutils 目录复制到windows盘中.
           b.进入纯DOS,进入dosutils目录,执行loadlin  autoboot/vmlinuz   root=/dev/hdx ->hdx 是linux的根分区号,这样就能进入linux.
           c.执行grub-install   /dev/hdx  (x=a,b,c,d)即可重写引导.
       4.如果用grub来引导linux 和windows,当windows出毛病重装安装后会破坏MBR中的GRUB,这时需要恢复GRUB
           a.把linux 安装光盘的第一张放到光驱,重启到BIOS中,把第一引导设为光驱引导.
           b.安装界面出来后,按F4
           c.一系列简单的点鼠标后会出现提示符 sh#,这样我们就可以操作GRUB了,sh#  grub  会出现这样的提示符: grub>root  (hdx,y)    x为0是第一个盘,为1是第二个盘;y为linux系统所在的根分区.grub>setup  (hd0)
       5.如何删除GRUB或LILO
           在DOS下执行fdisk   /mbr  就OK了.
      6.如何配置grub?
          修改 /boot/grub/grub.conf 文件,其中default=n n是数字,是grub引导菜单默认被选中的项,n从0开始,0表示第一项,1表示第二项依次类推.
         timeout=x    是时间,单位为秒,也就是引导菜单显示后,如果x秒内不进行选择,那么grub将启动默认项.
        splashimage=xxxxxxx   这是引导菜单的背景图.
        title Red Hat 8.0   是启动菜单列表里显示的名字.
        root   (hd1,6)   用来指定你的boot分区位置,hdx是所在的第几块硬盘,hd1是第二块;y的分区位置,从0开始
        kernel   /boot/vmlinuz-2.4.18-14    是要用的内核路径,如果你编译了新的内核,把它改成新内核的路径.

posted @ 2008-06-06 13:41 风林芝 阅读(1033) | 评论 (0)编辑 收藏

基于梯度方向图的汽车牌照定位

        经过了4个月的努力,终于把我的毕业设计做完了,也顺利的毕业了,心里即为自己的设计高兴的同时也开始为找工作而发愁了!我是用VC++开发平台做的数字图象处理,我现在把我的设计的实现和方法给大家看看。好了,废话不多说了,开始转入正题吧,首先说明我的方法也没有实现100%的精确定位,其算法还有待于进一步的改进,如哪位高手知道如何改,请回复我哦!
        我是借鉴求指纹纹理方向图的方法来实现的,我想做图象处理和识别的friend都应该知道方向图是个什么东东了吧,我在这里就不多解释了。实现方法如下:
         由梯度公式获取梯度纹理方向图
用Sobel算子分别求取水平方向、垂直方向、倾斜方向(包括45度和135度)的梯度分量,分别用Gx、Gy、Gxy、Gyx表示。
将车牌灰度图分成若干块WxW(5x5)进行分块处理,其计算量减少为对整幅图象的25倍,速度快、计算少能满足系统的实时性要求。
再分别对分块的灰度图利用已求取的Gx、Gy、Gxy、Gyx求取每块的局部方向vx、vy。
根据反正切函数求取车牌图象的方向角度值。
a=atan(Vx(i,j)/ Vy(i,j))/2
以上步骤已经求取了图象的纹理梯度方向,主要代码如下:
CClientDC dc(this);
    CPlateDoc 
*pDoc=GetDocument();
    CPen mypen(PS_SOLID,
0,RGB(0,100,126));
    dc.SelectObject(
&mypen);
 
    Image 
*im;
    im
=pDoc->m_dib.DibToImage();
    
//---------------------------------------------
Field  *im_x,*im_y,*im_jd,*im_vx,*im_vy;
Field  
*im_wenli;
Field  
*im_xy,*im_yx;

   im_x
=new  Field(im->width,im->height);
   im_y
=new  Field(im->width,im->height);
   im_xy
=new  Field(im->width,im->height);
   im_yx
=new  Field(im->width,im->height);
   
   im_vx
=new Field(im->width,im->height);
   im_vy
=new Field(im->width,im->height);

   im_jd
=new Field(im->width/W,im->height/W);
   im_wenli
=new Field(im->width/W,im->height/W);
   

 
//-----------------------------求取方向图------
   int i,j,u,v,k,l;
  
for(j=0,l=1;j<im->height-W;j+=W,l++)
   {
       
for(i=0,k=1;i<im->width-W;i+=W,k++)
       {    
        im_x
->field[k][l]=(im->ng[k-1][l+1]+2*im->ng[k][l+1]+im->ng[k+1][l+1])-
                          (im
->ng[k-1][l-1]+2*im->ng[k][l-1]+im->ng[k+1][l-1]);//水平方向的梯度

        im_y
->field[k][l]=(im->ng[k-1][l-1]+2*im->ng[k-1][l]+im->ng[k-1][l+1])-
                          (im
->ng[k+1][l-1]+2*im->ng[k+1][l]+im->ng[k+1][l+1]);//垂直方向的梯度

        im_xy
->field[k][l]=(im->ng[k+2][l]+2*im->ng[k+1][l+1]+im->ng[k][l+2])-
                           (im
->ng[k-1][l+1]+2*im->ng[k][l]+im->ng[k+1][l-1]);//45方向的梯度

        im_yx
->field[k][l]=(im->ng[k][l-1]+2*im->ng[k+1][l]+im->ng[k+2][l+1])-
                           (im
->ng[k-1][l]+2*im->ng[k][l+1]+im->ng[k+1][l+2]);//135方向的梯度
        
       }
   }
//---------------------------------------------
   for(j=0,l=0;j<im->height-W;j+=W,l++)
   {
      
for(i=0,k=0;i<im->width-W;i+=W,k++)
      {
          
for(v=j;v<j+W;v++)
          {
             
for(u=i;u<i+W;u++)
             {
            
                im_vx
->field[u][v]=(2*im_x->field[u][v]*im_y->field[u][v])/(fabs(im_x->field[u][v])+fabs(im_y->field[u][v]))+(im_xy->field[u][v]*
                                    im_xy->field[u][v]-im_yx->field[u][v]*im_yx->field[u][v])/(fabs(im_xy->field[u][v])+fabs(im_yx->field[u][v]));
 
                 im_vy
->field[u][v]=(im_x->field[u][v]*im_x->field[u][v]-im_y->field[u][v]*im_y->field[u][v])/(fabs(im_x->field[u][v])+
                                    fabs(im_y->field[u][v])) -(2*im_xy->field[u][v]*im_yx->field[u][v])/(fabs(im_xy->field[u][v])+fabs(im_yx->field[u][v]));
                  
              
             }
          }

             im_jd
->field[k][l]=(atan2(-im_vx->field[k][l],-im_vy->field[k][l]))/2;

               
if(im_jd->field[k][l]<0)
                  im_wenli
->field[k][l]=(im_jd->field[k][l]+2*PI)/2;
                
else 
                   im_wenli
->field[k][l]=im_jd->field[k][l]/2
                
                
if(fabs(im_x->field[k][l]-im_y->field[k][l])<16 && fabs(im_xy->field[k][l]-im_yx->field[k][l])<21)
                    im_wenli
->field[k][l]=0;
                    
             
      }
   }

posted @ 2008-06-06 13:28 风林芝 阅读(225) | 评论 (0)编辑 收藏

2008年5月12日 #

刻录系统启动光盘

怎样刻录系统启动光盘?
方法如下:

1.打开Nero Burning ROM
选择 "刻录机" - "刻录映像文件"
2.找到你下载的ISO文件
这里要说几句,现在装了RAR会把ISO关联,所以图标可能会认为是压缩文件,其实不是的,你显示文件的后缀名就知道是一个ISO文件,而不是RAR文件! 如果你下载的软件包真的是RAR的也没关系,只是需要UlitraISO软件,它可以把RAR文件转化为ISO文件,在刻录前一定要确保是ISO格式的文件.
3.一般刻XP建议选择"光盘一次刻录" 或 "光盘一次刻录96"
速度呢,最好不要太快,建议选择 24X
你不要解压!
直接刻成碟就ok了!

使用nero刻录iso镜像文件时,一定要记得安装虚拟光驱文件。我用的是daemon。
ok,祝大家好运!!!

posted @ 2008-05-12 13:31 风林芝 阅读(333) | 评论 (1)编辑 收藏

2008年4月12日 #

用windows的Dll接口程序

(1) 实现dll程序   dlltest.cpp
     #include "windows.h"
    BOOL APIENTRY DLLMain(HANDLE hModule , DWORD ul_reason_for_call , LPVOID lpReserved)
   {
         return true;
    }
   exten "C"_declspec(dllexport)   int  MyCopyFile(LPCSTR src , LPCSTR tar)
   {
       if(CopyFile (src ,tar, fale)==true)
            return 1;
      else   
           return 0;

    }

(2) 测试dll程序
      #include  "Windows.h"
      extern   "C"_declspec(dllexport)   int  MyCopyFile(LPCSTR  , LPCSTR);
      int main(int argc , char **argv)
     {
         MyCopyFile("c:\\1.txt", "c:\\2.txt");
         return 0;
 
     }

posted @ 2008-04-12 16:21 风林芝 阅读(352) | 评论 (0)编辑 收藏

java连接数据库

 import  java.sql.*;

public class testJdbc

{   public static void main(String[] args)

                { try

                       {Class.forName("Sun.jdbc.odbc.JdbcOdbcDriver");

                          String Source="jdbc:odbc:myAccess";
                          Connection con=DriverManger.getConnetion(source);
                           Statement stmt=con.createStatement();
                           String sql="select * from user";

                           ResultSet rs=stmt.executeQuery(sql);
                           String id, name, pwd;
                  while(rs.next())
                           {
                                 id=rs.getString(1);
                                 name=rs.getString(2);
                                 pwd=rs.getString(3);
                                  System.out.println(id+","+name+","+pwd);


                            }
       rs.close();
       stmt.close();
       con.close();
              }

}

posted @ 2008-04-12 16:06 风林芝 阅读(129) | 评论 (0)编辑 收藏

2008年3月25日 #

制作安装引导盘

1.机器中已存在linux环境,将光盘挂载到系统的/mnt/cdrom 目录上.
#mount   /dev/cdrom          /mnt/cdrom
2.在软驱中放入一张软盘,输入:
    #dd if=/mnt/cdrom/images/bootdisk.img     of=/dev/fd0  bs=1440k
使用U盘引导,则要使用安装引导盘来引导安装,安装引导盘的映像文件是第一张安装盘中的 /images/bootdisk.img   使用引导之前,需要改变系统的BIOS设置为U 盘引导优先.其原理与软盘的一样.

posted @ 2008-03-25 10:19 风林芝 阅读(236) | 评论 (2)编辑 收藏

仅列出标题