在较大的图像中查找已知的子图像

有没有人知道在更大的图像中定位已知图像的算法(或搜索术语/描述)? 例如 我有一个包含各种按钮和区域(目标)的单个桌面窗口的图像。 我还有代码捕获当前桌面的屏幕截图。 我想要一个算法,它可以帮助我在更大的桌面图像中找到目标图像(窗口所在的x和y坐标是什么)。 目标图像可能位于较大图像中的任何位置,并且可能不是100%完全相同(非常相似但不完全可能是OS显示差异的b / c) 有谁知道这样的算法或算法类? 我发现了各种图像分割和计算机视觉算法,但它们似乎适用于区域的“模糊”分类,而不是将特定图像定位在另一个区域内。 ** 我的目标是创建一个框架,给定一些种子目标图像,可以在桌面上找到“外观”,找到目标区域并“观察”它的变化。 **

如何将Yeoman scaffolding与现有的Java目录结构相结合

在我现有的Web项目中,使用jetty进行开发时所服务的html内容的目录结构是“myProject / src / main / webapp /” 现在,我想在这里集成一个angularjs项目。 我跟Yeoman玩过一点点。 如果我是自行车的脚手架,我想知道如何将它集成到我们现有的开发和部署结构中。 我想使用主文件夹“myProject”运行yeoman脚手架会很好。 然后我会得到一个“myProject / app /”指令,用于我所有的前端。 我应该以某种方式指示(如何?)我的docker服务器使用“… / src / main / webapp /”作为新app目录的别名? 我们主要使用jetty作为请求后端的代理。 是否还有一种方法可以像“yeoman服务器”一样进行类似于docker的实时重装?

Javareflection:如何在运行时覆盖或生成方法?

在普通Java中,可以在运行时以编程方式覆盖类的方法(甚至创建新方法)? 即使我在编译时不了解类,我也希望能够这样做。 我在运行时重写的意思是: abstract class MyClass{ public void myMethod(); } class Overrider extends MyClass{ @Override public void myMethod(){} } class Injector{ public static void myMethod(){ // STATIC !!! // do actual stuff } } // some magic code goes here Overrider altered = doMagic( MyClass.class, Overrider.class, Injector.class); 现在,这个调用…… altered.myMethod(); …将调用Injector.myMethod()而不是Overrider.myMethod() 。 Injector.myMethod()是静态的 ,因为在执行“magic”之后,它会从不同的类实例(它是Overrider)调用,(因此我们阻止它访问本地字段)。

在Grails中放置文本文件的位置,以及如何获取路径

我需要在.txt文件中读入一个groovy类,以便逐行查询它。 但是我不确定我在grails应用程序中放入了什么文件夹,以及如何获取它的路径? 到目前为止,我已尝试将其放在src下,也放在新的文件夹web-app/txt 我已经尝试了以下内容来阅读它 fileIn = new File(‘/lexicon.txt’).text 和 fileIn = new File(‘txt/lexicon.txt’).text 无济于事。 任何身体有任何指针?

扩展java ArrayList

我想扩展ArrayList,为特定类添加一些方法,其实例将由扩展ArrayList保存。 下面是简化的说明性代码示例。 这对我来说似乎很明智,但我对Java很新,我看到其他一些不鼓励扩展ArrayList的问题,例如Extending ArrayList和Creating new methods 。 我不太了解Java以了解异议。 在我之前的尝试中,我最终在ThingContainer中创建了一些基本上是传递给ArrayList的方法,因此扩展似乎更容易。 有没有更好的方法来做我想做的事情? 如果是这样,应该如何实施? import java.util.*; class Thing { public String name; public int amt; public Thing(String name, int amt) { this.name = name; this.amt = amt; } public String toString() { return String.format(“%s: %d”, name, amt); } public int getAmt() { return amt; } } class ThingContainer […]

Spring调度程序关闭错误

在tomcat容器中开发基于SPRING的调度程序期间,我总是在取消部署webapp或shutdown服务器时获得此logoutput: Apr 28, 2010 4:21:33 PM org.apache.catalina.core.StandardService stop INFO: Stopping service Catalina Apr 28, 2010 4:21:33 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads SEVERE: A web application appears to have started a thread named [org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-1] but has failed to stop it. This is very likely to create a memory leak. Apr 28, 2010 4:21:33 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads SEVERE: A […]

服务层中的已检查与未检查的例外

我处理具有遗留服务层的项目,如果请求的记录不存在,则在许多地方返回null,或者由于呼叫者未被授权而无法访问。 我在谈论ID要求的特定记录。 例如,类似于: UserService.get(userId); 我最近推动改变这个API,或者补充一个抛出exception的新API。 关于已检查与未经检查的例外的争论随之而来。 从JPA / Hibernate等人的设计者那里得到一个注释,我建议未经检查的exception可能是最合适的。 我的论点是,无法合理地期望API的用户从这些exception中恢复,并且在99%的情况下,我们最多只能通知应用程序用户发生了一些错误。 将运行时exception传播到通用处理机制显然会减少处理边缘情况exception所涉及的大量复杂性和所需的分支处理。 但是,围绕这种方法存在很多问题(这是正确的)。 为什么选择JPA / EJB和Hibernate等项目的设计者使用未经检查的exception模型? 它有充分的理由吗? 有什么利弊。 使用这些框架的开发人员是否仍然可以使用适配器包装器之类的东西处理接近抛出它们的运行时exception? 我希望这些问题的答案可以帮助我们对自己的服务层做出“正确”的决定。

Tomcat压缩不会在标头中添加内容编码:gzip

我正在使用Tomcat压缩我的HTML内容,如下所示: 然而,在HTTP标头中(通过YSlow观察),我没有看到 Content-Encoding: gzip 导致Y​​Slow评分不佳。 我只看到了 HeadersPost Response Headers Server: Apache-Coyote/1.1 Content-Type: text/html;charset=ISO-8859-1 Content-Language: en-US Content-Length: 5251 Date: Sat, 14 Feb 2009 23:33:51 GMT 我正在运行apache mod_jk Tomcat配置。 如何使用Tomcat压缩HTML内容,并在标题中添加“Content-Encoding:gzip”?

Tomcat的群集/会话复制无法正确复制

我正在本地计算机上的Tomcat 7上设置群集/复制,以评估它是否与我的环境/代码库一起使用。 建立 我在不同端口上运行的兄弟目录中有两个相同的tomcat服务器。 我有httpd监听另外两个端口并连接到两个tomcat实例作为VirtualHosts。 我可以在配置的端口上访问和交互两个环境; 一切都按预期工作。 tomcat服务器在server.xml中启用了这样的集群: 我将distributable标记添加到web.xml的最开头: (lots more…) 什么工作 当服务器启动时,它们会记录 Sep 16, 2013 1:44:23 PM org.apache.catalina.ha.tcp.SimpleTcpCluster startInternal INFO: Cluster is about to start Sep 16, 2013 1:44:23 PM org.apache.catalina.tribes.transport.ReceiverBase getBind FINE: Starting replication listener on address:10.0.0.100 Sep 16, 2013 1:44:23 PM org.apache.catalina.tribes.transport.ReceiverBase bind INFO: Receiver Server Socket bound to:/10.0.0.100:4001 Sep 16, 2013 […]

忽略关系中的FetchType.EAGER

我在大型应用程序中遇到EAGER关系问题。 此应用程序中的某些实体与其他实体具有EAGER关联。 这在一些function中变成了“毒药”。 现在我的团队需要优化这些function,但我们无法将获取类型更改为LAZY ,因为我们需要重构整个应用程序。 所以,我的问题是:有没有办法在我返回的实体中忽略EAGERs关联来执行特定查询? 示例:当我有这个实体Person时,我想在查询人员时不带地址列表。 @Entity public class Person { @Column private String name; @OneToMany(fetch=FetchType.EAGER) private List address; } Query query = EntityManager.createQuery(“FROM Person person”); //list of person without the address list! But how??? List resultList = query.getResultList(); 谢谢! 更新 我找到的唯一方法是不返回实体,只返回实体的某些字段。 但我想找到一个解决方案,我可以返回实体(在我的例子中, Person实体)。 我在想是否可以在Hibernate中将同一个表映射两次。 通过这种方式,我可以在没有EAGER关联的情况下映射同一个表。 在少数情况下这会帮助我……