python 实现对象去重

利用set()方法实现对象去重,重写__hash__方法和__eq__方法告诉程序什么样的对象是同一个对象#写一个类拥有100个对象#拥有三个属性nameagesex#如果两个对象的name和sex完全相同#我们就认为这是一个对象#忽略age属性做这100个对象的去重工作classPerson():def__init__(self,name,age,sex):self.name=nameself.age=ageself.sex=sexdef__hash__(self):returnhash(self.name+self.sex)def__eq__(self,other):ifself.name==other.nameandself.sex==other.sex:returnTrueelse:returnFalseif__name__=='__main__':list=[]foriinrange(1,99):list.append(Person('wangxiaojiang'+str(i),str(i),'female'))list.append(Person('wangxiaojian...
代码星球 代码星球·2020-03-29

图像欧拉数计算 matlab实现

EUL=C-H其中EUL表示欧拉数 C表示对象数H表示孔洞数欧拉数常用来识别数字:识别数字8,8的欧拉数为-1,不同于0,1,2,3,4,5,6,7,9closeall;clearall;clc;%识别数字8I=imread('8.jpg');K=im2bw(I);J=~K;%图像取反EUL=bweuler(J);figure;subplot(131);imshow(I);subplot(132);imshow(K);subplot(133);imshow(J);EUL=-1​我们想一下0的欧拉数为多少,再进行验证,图像0包含一个对象,一个孔洞,所以欧拉数为0,我们测试后发现0的欧拉数为0,符合我们的预想。​ EUL=0...

利用Gabor变换法分析纹理图像 matlab代码实现

Gabor变化属于加窗傅里叶变换,Gabor函数可以在频域不同尺度、不同方向上提取相关的特征。Gabor函数与人眼的生物作用相仿,所以经常用于纹理识别上,并取得了较好的效果。二维Gobor滤波函数:​其中:xp=x*cos(theta)+y*sin(theta)yp=y*cos(theta)-x*sin(theta)function[G,gabout]=gaborfilter(I,Sx,Sy,f,theta)%gaborfilter定义,I为输入图像,Sx、Sy是变量在x,y轴变化的范围,即选定的gabor小波窗口的大小%f为正弦函数的频率,theta为gabor滤波器的方向。G为gabor滤波函数g(x,y),gabout为gabor滤波后的图像ifisa(I,'double')~=1I=double(I);endforx=-fix(Sx):fix(Sx)fory=-fix(Sy):fix(Sy)xp=x*cos(theta)+y*sin(theta);yp=y*cos(theta)-x*sin(theta);G(fix(Sx)+x+1,fix(Sy)+y+1)=exp(-.5*((...

利用matlab自带函数graycoprops 实现基于共生矩阵的遥感图像纹理特征分析

closeall;clearall;clc;I=imread('yaogan2.jpg');HSV=rgb2hsv(I);Hgray=rgb2gray(HSV);%计算64位灰度共生矩阵glcmsl=graycomatrix(Hgray,'numlevels',64,'offset',[01;-11;-10;-1-1]);%纹理特征统计,包括对比度、相关性、熵、平稳度、二阶矩(能量)stats=graycoprops(glcmsl,{'contrast','correlation','energy','homogeneity'});ga1=glcmsl(:,:,1);%0°ga2=glcmsl(:,:,2);%45°ga3=glcmsl(:,:,3);%90°ga4=glcmsl(:,:,4);%135°energya1=0;energya2=0;energya3=0;energya4=0;fori=1:64forj=1:64energya1=energya1+sum(ga1(i,j)^2);energya2=energya2+sum(ga2(i,j)^...

纹理特征描述之自相关函数法 纹理粗糙性与自相关函数的扩展成正比 matlab代码实现

图像中通常采用自相关函数作为纹理测度自相关函数的定义为:​调用自定义函数zxcor()对砖墙面和大理石面纹理进行分析:自定义函数zxcor():function[epsilon,eta,C]=zxcor(f,D,m,n)%自相关函数zxcor(),f为读入的图像数据,D为偏移距离,[m,n]是图像的尺寸数据,返回图像相关函数C的值%epsilon和eta是自相关函数C的偏移变量forepsilon=1:Dforeta=1:Dtemp=0;fp=0;forx=1:mfory=1:nif(x+epsilon-1)>m|(y+eta-1)>nf1=0;elsef1=f(x,y)*f(x+epsilon-1,y+eta-1);endtemp=f1+temp;fp=f(x,y)*f(x,y)+fp;endendf2(epsilon,eta)=temp;f3(epsilon,eta)=fp;C(epsilon,eta)=f2(epsilon,eta)/f3(epsilon,eta);endendepsilon=0:(D-1);eta=0:(D-1);end调用函数的测试代码如下:clo...

纹理特征描述之灰度差分统计特征(平均值 对比度 熵) 计算和比较两幅纹理图像的灰度差分统计特征 matlab代码实现

灰度差分统计特征有:平均值:​对比度:​熵:​i表示某一灰度值,p(i)表示图像取这一灰度值的概率closeall;clearall;clc;%纹理图像的灰度差分统计特征J=imread('qiang1.jpg');A=double(J);[m,n]=size(A);B=A;C=zeros(m,n);fori=1:m-1forj=1:n-1B(i,j)=A(i+1,j+1);C(i,j)=abs(round(A(i,j)-B(i,j)));endendh=imhist(mat2gray(C))/(m*n);mean=0;con=0;ent=0;%均值mean,对比度con,熵entfori=1:256mean=mean+(i*h(i))/256;con=con+i*i*h(i);if(h(i)>0)ent=ent-h(i)*log2(h(i));endendmean,con,ent​​qiang1.jpg               ...

php 实例说明 socket通信机制

http://blog.51yip.com/php/673.html一,socket是什么什么是socket所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。说白了就是一种通信机制。它类似于银行,电信啊这些部分的电话客服部门。你打电话的时候,那边会分配置一个人回答你的问题,客服部门就相当于socket的服务器端了,你这边呢就相当于客户端了,在和你通话结束前,如果有人在想找和你通话的那个说话,是不可能的,因为你在和他通信,当然客服部门的电话交换机也不会重复分配。下面我将举例子来说明一下,socket是怎么工作的。如果你是基于应用层开发的人员并不一定要理解原理,但是能知道那是更好了。网上有关于socket的phpapi。下下来用就行了。二,socket服务器server.php查看复制打印?<?php  // 建立server端socket  $tcp = getprotobyname("tcp");  $...
当地较为有名的狠人 当地较为有名的狠人·2020-03-29

CSS圆角实现

1.方法一:上下两张带圆角的图片。宽度固定,允许高度变动.<divclass="box"><h2>Headline</h2><p>Content</p></div>.box{width:418px;background:#effce7url(images/bottom.gif)no-repeatleftbottom;}.boxh2{background:url(images/top.gif)no-repeatlefttop;}图片:2.方法二:三张图片,上下两张图片再加中间的填充图片.宽度固定,允许高度变动.<divclass="box"><h2>Headline</h2><pclass="last">Content</p></div>.box{width:424px;background:url(images/bg-tile.gif)repeat-y;}.boxh2{background:url(images/bg-top.gif)no-re...
当地较为有名的狠人 当地较为有名的狠人·2020-03-29

终于知道怎么把rails Web程序打包成可执行文件了

搞了一下午,终于知道怎么把railsWeb程序打包成可执行文件了```把效果示例拿到附件来让大家试一下,为了保证能运行此示例,首先得保证你电脑里装好了sqlite并且已经配置好,然后就可以输入http://localhost:3000/book/浏览了。Enjoyit!奇怪!为什么点击率这么低,而下载数量却这么高的?相关的PDF文档我已经做好,等过段时间再传上来分享给大家...
当地较为有名的狠人 当地较为有名的狠人·2020-03-29

利用wifi在同一个局域网下实现两部手机之间的通讯

需要用到的权限<uses-permissionandroid:name="android.permission.INTERNET"/><uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/><uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"/><uses-permissionandroid:name="android.permission.WAKE_LOCK"/>service端publicclassMainActivityextendsActivity{privateButtonstart=null;privateEditTextbufferText=null;privateButtonsend=null;privateServerThreadserverThread=null;privateStringsendBuffer=null;privateStringreceiv...
当地较为有名的狠人 当地较为有名的狠人·2020-03-29

(一). 基于数组的列表实现ArrayList

这些天一直纠结于散列表的总结,感觉自己对散列表的理解还可以,源代码也深究了一些,但是一到要写的时候就找不到好的思路,只好从基本的开始写,希望能为后续的散列表总结找到一些思路...ArrayList是基于数组实现的,它在一个连续的储存块中储存元素,不过与数组不同的是:ArrayList可以进行动态的增长,通俗一点说就是:当数组不足以容纳更多的元素时,我们就再建立一个新的,更长的数组,将原数组的元素拷贝到新数组里,再对这个新数组进行操作.  首先分析一下它的基本功能:1.添加操作:将指定索引位置后所有元素向后移动,再将要插入的数据插入到空出来的指定索引位置. 2.删除操作:删除操作和插入操作有点类似,是将指定索引后的元素都向前移动,想当于插入操作的逆过程.3.查找操作:1)给定索引,可直接查找指定索引出的元素2)给定值,则需要遍历4.修改操作: 给定索引直接替换原值下面看一下具体的代码实现: packageList;/***基于数组的列表集合**@authorMOYUNYU**/publicclassArrayListImpl{//保存元素...
当地较为有名的狠人 当地较为有名的狠人·2020-03-29

Java并发编程: 使用Exchanger实现线程间的数据交换

本文介绍Exchanger工具类,然后采用Exchanger给出一个两个线程交换数值的简单实例。1.Exchanger介绍/***Asynchronizationpointatwhichtwothreadscanexchangeobjects.*Eachthreadpresentssomeobjectonentrytothe{@link#exchange*exchange}method,andreceivestheobjectpresentedbytheother*threadonreturn.*/从上面的注释中可以看出:Exchanger提供了一个同步点,在这个同步点,两个线程可以交换数据。每个线程通过exchange()方法的入口提供数据给另外的线程,并接收其它线程提供的数据,并返回。Exchanger通过Lock和Condition来完成功能,Exchanger的一个重要的public方法是exchange方法,用于线程的数据交换,相关的类图以及详细的Exchanger类内容如下:packagejava.util.concurrent;importjava.util.concur...
当地较为有名的狠人 当地较为有名的狠人·2020-03-29

Swing贪吃蛇游戏(一):基本功能实现

本文将提供一个Swing版本的贪吃蛇游戏,游戏包括最基本的功能:1.用Timer来管理贪吃蛇线程。2.实现按钮,键盘的事件响应。3.随机产生食物。4.游戏结束的判断:蛇头触碰到蛇身或者蛇头触碰到边界。5.实现游戏过程中的暂停以及贪吃蛇运行速度调整。6.……程序界面如下:左边是贪吃蛇运行的范围,右边暂时只有分数信息,当蛇吃到食物的时候分数加10.暂停,调整蛇体运行速度界面如下:主要的代码如下:packagemy.games.snake.model;importjava.awt.Color;importjava.awt.Graphics2D;importjava.awt.geom.Rectangle2D;importjava.io.Serializable;importmy.games.snake.contants.SnakeGameConstant;/****贪吃蛇游戏用到的格子类**@authorEric**/publicclassGridimplementsSerializable{privatestaticfinallongserialVersionUID=510599392777...
当地较为有名的狠人 当地较为有名的狠人·2020-03-29

【Android】实现XML解析的几种技术

 本文介绍在Android平台中实现对XML的三种解析方式。  XML在各种开发中都广泛应用,Android也不例外。作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能。  在Android中,常见的XML解析器分别为DOM解析器、SAX解析器和PULL解析器,下面,我将一一向大家详细介绍。 第一种方式:DOM解析器:DOM是基于树形结构的的节点或信息片段的集合,允许开发人员使用DOMAPI遍历XML树、检索所需数据。分析该结构通常需要加载整个文档和构造树形结构,然后才可以检索和更新节点信息。Android完全支持DOM解析。利用DOM中的对象,可以对XML文档进行读取、搜索、修改、添加和删除等操作。DOM的工作原理:使用DOM对XML文件进行操作时,首先要解析文件,将文件分为独立的元素、属性和注释等,然后以节点树的形式在内存中对XML文件进行表示,就可以通过节点树访问文档的内容,并根据需要修改文档——这就是DOM的工作原理。DOM实现时首先为XML文档的解析定义一组接口,解析器读入整个文档,然后...
当地较为有名的狠人 当地较为有名的狠人·2020-03-29

[译]CSS实现垂直居中的五种方法

       这篇文章是我早先保存下来的,昨天复习CSS垂直居中时偶然发现原文地址已经失效了,但我觉得它写得非常的好,所以决定把它翻译过来,以便更多人的从中受益(从内容来看,作者应该是在IE8beta版本刚刚出来的时候发表的这篇文章,所以读者们在看到相关内容时注意一下就好了)。=================================================================================================CSS实现垂直居中的五种方法       CSS有许多方法可以实现垂直居中,但是选择合适的方法却很难。我将为你展示我见过的所有的最棒的方法以及如何创建一个精致小巧的居中网页。       使用CSS实现垂直居中并不是一件容易的事,有许多不同的方法,其中一些可能在某些浏览器中不生效。让我们来看看五种不同的垂直居中的方法...
当地较为有名的狠人 当地较为有名的狠人·2020-03-29
首页上一页...606607608609610...下一页尾页