Hessian<初学例子>

    昨天发现有这样的好东西!研究了一下,发现很不错!介绍个大家学习学习,而且这个资料比较少,希望能让大家入门了!

定义一个接口

package study.hessian;

public interface IBasic {    
  
    public String hello();    
 
    public Person getPerson();    
   
}  

 一个接口的实现类

package study.hessian;
 
public class BasicService implements IBasic {    
  private String hello= "Hello, Vincent";    
   
  public String hello()    
  {    
    return hello;    
  }    
   
    public Person getPerson() {    
        Person person = new Person();    
        person.setColor("Yello");    
        person.setLength("176cm");    
        person.setName("vincent");    
        return person;    
    }    
}  

 定义一个实体,必须实现序列化接口,因为要通过网络传输

package study.hessian;

import java.io.Serializable;

public class Person implements Serializable{

	private static final long serialVersionUID = 3276641446246664L;
	private String name;
	private String length;
	private String color;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getLength() {
		return length;
	}

	public void setLength(String length) {
		this.length = length;
	}

	public String getColor() {
		return color;
	}

	public void setColor(String color) {
		this.color = color;
	}

}

 

web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	<servlet>
		<servlet-name>hello</servlet-name>
		<servlet-class>
			com.caucho.hessian.server.HessianServlet
		</servlet-class>
		<init-param>
			<param-name>home-class</param-name>
			<param-value>study.hessian.BasicService</param-value>
		</init-param>
		<init-param>
			<param-name>home-api</param-name>
			<param-value>study.hessian.IBasic</param-value>
		</init-param>
	</servlet>

	<servlet-mapping>
		<servlet-name>hello</servlet-name>
		<url-pattern>/hello</url-pattern>
	</servlet-mapping>
</web-app>

 

客户端的类

package study.hessian;

import com.caucho.hessian.client.HessianProxyFactory;

public class BasicClient {    
    public static void main(String []args)    
        throws Exception    
      {    
        String url = "http://127.0.0.1:8080/WorkTest/hello";    
        HessianProxyFactory factory = new HessianProxyFactory();    
        IBasic basic = (IBasic) factory.create(IBasic.class, url);
        System.out.println(basic);
          Person person   = basic.getPerson();    
          System.out.println("Hello: " + basic.hello());    
        System.out.println("Hello: " + person.toString());    
      }    
} 

 String url = http://127.0.0.1:8080/WorkTest/hello;

WorkTest 工程名字

http://hessian.caucho.com 下载一个 hessian.jar文件倒到工程就可以了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
public Point2d RefineSubPixel(Mat image, Point2d lower, Point2d upper) { // 提取感兴趣区域 Rect roiRect = new Rect((int)lower.X, (int)lower.Y, (int)(upper.X - lower.X), (int)(upper.Y - lower.Y)); Mat roi = new Mat(image, roiRect); // 初始化初始点 Point2d refinedPoint = new Point2d(roi.Cols / 2.0, roi.Rows / 2.0); // 定义优化终止标准 var termCriteria = new TermCriteria(CriteriaTypes.MaxIter | CriteriaTypes.Eps, 20, 0.03); // 执行优化迭代 if (roi.Width > 1 && roi.Height > 1) { // 预处理 var grayRoi = new Mat(); Cv2.PyrMeanShiftFiltering(roi, roi, 2, 2); Cv2.CvtColor(roi, grayRoi, ColorConversionCodes.BGR2GRAY); Cv2.Threshold(grayRoi, grayRoi, 0, 255, ThresholdTypes.Binary | ThresholdTypes.Otsu); // 迭代更新点坐标 var delta = new Point2d(); var point = new Point2d(refinedPoint.X, refinedPoint.Y); var bestPoint = new Point2d(refinedPoint.X, refinedPoint.Y); var width = image.Cols; var height = image.Rows; var targetGray = grayRoi.At<byte>((int)point.Y, (int)point.X); var minError = double.MaxValue; var precision = 1e-6; for (int i = 0; i < termCriteria.MaxCount; i++) { int x = (int)Math.Round(point.X); int y = (int)Math.Round(point.Y); if (x <= 0 || y <= 0 || x >= grayRoi.Cols - 1 || y >= grayRoi.Rows - 1) { break; } // 计算当前点周围的梯度信息 var derivX = (grayRoi.At<byte>(y, x + 1) - grayRoi.At<byte>(y, x - 1)) / 2.0; var derivY = (grayRoi.At<byte>(y + 1, x) - grayRoi.At<byte>(y - 1, x)) / 2.0; var hessian = new Mat(2, 2, MatType.CV_64F); hessian.Set<double>(0, 0, grayRoi.At<byte>(y, x + 1) + grayRoi.At<byte>(y, x - 1) - 2 * grayRoi.At<byte>(y, x)); hessian.Set<double>(0, 1, (grayRoi.At<byte>(y + 1, x + 1) - grayRoi.At<byte>(y + 1, x - 1) - grayRoi.At<byte>(y - 1, x + 1) + grayRoi.At<byte>(y - 1, x - 1)) / 4.0); hessian.Set<double>(1, 0, hessian.At<double>(0, 1)); hessian.Set<double>(1, 1, grayRoi.At<byte请完善代码
06-02

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值