我试图使用Opencv在Python中实现FREAK描述符.这是我正在使用的代码:
def surf_freak_detect(image,hessianThreshold):
surfDetector = cv2.SURF(hessianThreshold)
surfDetector=cv2.GridAdaptedFeatureDetector(surfDetector,50)
keypoints = surfDetector.detect(image,None)
freakExtractor = cv2.DescriptorExtractor_create('FREAK')
keypoints,descriptors= freakExtractor.compute(image,keypoints)
del freakExtractor
return keypoints,descriptors
Run Code Online (Sandbox Code Playgroud)
这是初始化怪胎描述符的正确方法吗?通过一些调试,我发现解释器需要花费很长时间来计算描述符然后最终崩溃.正确检测关键点.奇怪的是,它有时有效,有时只是崩溃!
我想从静态图像中识别车辆(汽车,自行车等).我正在考虑使用SURF来获取有用的关键点和描述符,然后训练MLP(多层感知器)神经网络.但是我不知道神经网络的输入是什么以及它的输出是什么,以便我可以识别车辆所在的图像部分(可能是围绕它绘制的矩形).我知道SURF可以返回图像中的有用关键点及其描述符(我已经这样做了).关键点具有角度,并且每个关键点对应于64或128长的Vector作为描述符.我不知道的是这些关键点究竟是什么以及如何将它们用作神经网络的输入.
我正在使用OpenCV和Python.
我是使用SURF和其他特征提取方法的新手.任何有关这方面的帮助都会非常好.
我的目标:
这是我正在使用的代码:
from PIL import Image
from pylab import *
import numpy as np
inputImage='C:\Test\Test1.jpg'
##outputImage='C:\Test\Output\Test1.jpg'
pilImage=Image.open(inputImage)
pilImage.draft('L',(500,500))
imageArray= np.asarray(pilImage)
imshow(imageArray)
##pilImage.save(outputImage)
axis('off')
show()
Run Code Online (Sandbox Code Playgroud)
我的问题:图像显示就像颜色被反转一样.
但我知道图像会转换为灰度图像,因为当我将图像写入磁盘时,它会显示为灰度图像.(正如我所料).
我觉得这个问题出现在numpy转换的某个地方.
我刚刚开始使用Python进行图像处理编程.提示和指南也将不胜感激.
我有一个动作,我试图登录用户.
public class RegisteredUserAction extends ActionSupport implements SessionAware {
..
..
public String login() throws Exception {
DBLogic dBLogic = new DBLogic();
RegisteredUser user = null;
try {
user = dBLogic.getRegisteredUser(getUserUsername(), getUserPassword());
} catch (CredentialException e) {
addFieldError("userUsername", e.getMessage());
addActionError(e.getMessage());
return INPUT;
}
if (user != null) {
session.put("user", user);
return SUCCESS;
}
return ERROR;
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,如果用户名或密码无效,我会抛出一个CredentialException,然后在我的fieldError中填充该例外消息.我甚至尝试添加动作错误.
通过一些建议和在线搜索,我设法使用分别存储和提取的RegisteredUserAction.action和MainAction.action中的注释使用Message Store Interceptor.
import org.apache.struts2.convention.annotation.InterceptorRef;
import org.apache.struts2.convention.annotation.InterceptorRefs;
@InterceptorRefs({
@InterceptorRef(value = "store", params = {"operationMode", "STORE"}),
@InterceptorRef("defaultStack"),})
Run Code Online (Sandbox Code Playgroud)
和
import org.apache.struts2.convention.annotation.InterceptorRefs;
@InterceptorRefs({
@InterceptorRef(value = …
Run Code Online (Sandbox Code Playgroud) 我想使用JSTL在变量中存储字符值
我的代码是:
<c:set var="letter" value='${param.colorLetter.toLowerCase().charAt(0)}' ></c:set>
Run Code Online (Sandbox Code Playgroud)
接下来我需要尝试检查角色是否为'v':
<c:choose>
<c:when test="${letter}=='v'">
<lable>Color Name: </lable>Violet<br/>
</c:when>
</c:choose>
Run Code Online (Sandbox Code Playgroud)
目前我觉得它不是将它存储为字符变量,所以测试失败了.(没有错误/例外)
我正在尝试使用JPA和Hibernate以及JPA Provider在Spring 3.2中开发一个简单的Payroll应用程序.我正在JBoss AS 7服务器上部署它.我一直收到以下错误:
16:42:13,811 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/PayrollApp].[payrollApp]] (http--127.0.0.1-8080-1) Servlet.service() for servlet payrollApp threw exception: javax.persistence.TransactionRequiredException: no transaction is in progress
at org.hibernate.ejb.AbstractEntityManagerImpl.flush(AbstractEntityManagerImpl.java:993) [hibernate-entitymanager-4.2.2.Final.jar:4.2.2.Final]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_25]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_25]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_25]
at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_25]
at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:365) [spring-orm-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at com.sun.proxy.$Proxy30.flush(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_25]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_25]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_25]
at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_25]
at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:240) [spring-orm-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at com.sun.proxy.$Proxy30.flush(Unknown Source)
at com.colenso.payrollapp.persistence.daos.GenericDAO.add(GenericDAO.java:34) [classes:]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_25]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_25]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_25]
at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_25]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318) …
Run Code Online (Sandbox Code Playgroud)