- HalconDotNet中的图像视频采集
0仰望星空007
音视频数码相机计算机视觉HalconC#
文章目录1.单相机视频图像采集2.多相机视频图像采集3.设置相机曝光时间4.实时图像显示5.图像采集与保存1.单相机视频图像采集 使用HalconDotNet进行单相机视频图像采集的基本步骤包括初始化相机、设置采集参数、开始采集、处理图像以及停止采集。usingHalconDotNet;publicvoidSingleCameraCapture(){HFramegrabberframegrabb
- halcon第九讲,深度学习结合大数据实现AI智能识别思想
青莲居士_村长
人工智能、大数据、5G1、什么是人工智能、大数据、5G,三者有什么关联。人工智能(ArtificialIntelligence):英文缩写:AI,人工智能是[计算机]科学的一个分支,它企图了解智能的实质,并生产出一种新的能以[人类智能]相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和[专家系统]等。人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,
- Image size does not match the measurement in camera parameters Halcon错误代码 8428
gojava
halconhalcon
在做标定的时候,用自己采的图片,运行到下面这一行,就报上面的错find_calib_object(ImageScaled,CamCalibDataID,0,0,I,[],[])原因是在给定初始相机内参的时候错误,我是直接用了halcon自带的内参文件,这个内参文件对图片尺寸大小和我自己的不符合,如下图,这个是我的图片尺寸这个是halcon自动文件内给图片设定的尺寸我们将自己的尺寸进行替换,就正常了
- 【已解决】Halcon错误代码4104
聪明不喝牛奶
深度学习Halcon+CSharphalcon深度学习
问题描述在运行的时候发现报错4104,如下图所示解决从字面上理解就是超出了计算机的内存空间了,那么着手解决的话就需要把没次训练的张数减少一些即可。去相对应的修改batch_size即可。结果如下图所示,正常在使用GPU训练。搞定,手工~
- HALCON 错误代码 #7709
聪明不喝牛奶
Halcon+CSharp深度学习halcon深度学习
前言最近在研究halcon的深度学习,在环境配置上花了不少的功夫搞定,结果正要开始训练分类的第二个train文件就出现了一个错误,报7709,折腾了三天才解决。原因报7709主要的原因有如下几个原因:1、就是你选的cuda版本和cudnn的不匹配,这个原因应该大家在选择的时候注意一下版本对比的话可以避免,基本上不是这个原因造成的。2、显卡的驱动版本的过低,需要下载一个驱动精灵升级一下显卡的驱动,但
- halcon深度学习4:深度学习在 OCR的用法-deep_ocr_workflow解析
mlxg99999
halcon深度学习自学
1.什么是OCR技术OCR,全称是OpticalCharacterRecognition,即光学字符识别,面向扫描文件。但是由于现在数字图像的普及,这里泛指文字检测和识别,包括扫描文档和自然场景的文字识别。2、deep_ocr_workflow在深度学习中,只有一篇例子关于OCR就是这一篇,文中介绍了深度OCR模型的建立与使用(如果使用过计量模型的可以较好理解,就是建立模型→设置参数→导入图片→进
- Halcon一维码
威威当爸了
Halcon一维码
set_bar_code_param(BarCodeHandle,'stop_after_result_num',8)//设置读取条码的个数set_bar_code_param(hand,''element_size_min'','true')//变形的条码可以识别set_bar_code_param(hand,'majority_voting','true')//如果为true就是多条扫描线的平
- halcon图像矫正
威威当爸了
Halconhalcon
图像矫正**55表示最大文字的高度text_line_orientation(RegionTrans,InputImage,55,rad(-30),rad(30),OrientationAngle)rotate_image(InputImage,ImageRotate,-OrientationAngle/rad(180)*180,'constant')xld矫正,发现这个不是很灵.get_imag
- 学习Halcon可以从以下几个方面入手
视觉人机器视觉
机器视觉Halcon大总结学习人工智能深度学习图像处理计算机视觉视觉检测
基础理论学习:了解Halcon的基本概念、架构和主要技术,包括图像处理、机器视觉、深度学习等方面的知识。官方文档和教程:阅读Halcon的官方文档和教程,这是学习Halcon最直接、最权威的途径。官方文档详细介绍了Halcon的各种功能和算子,是学习Halcon不可或缺的资源。实践项目:通过参与实际项目来巩固所学知识,提升实践能力。可以从简单的项目开始,
- HALCON根据需要创建自定义函数
视觉人机器视觉
解决方案算法人工智能计算机视觉视觉检测图像处理深度学习
在HALCON中,根据需要创建自定义函数是扩展其图像处理和分析功能的有效方式。HALCON支持通过其高级编程接口(HDevelop和C/C++、C#、Python等)来创建自定义函数。这里将主要讨论在HDevelop环境中如何创建自定义函数,因为HDevelop是HALCON的交互式编程环境,广泛用于开发和测试图像处理算法。1.使用HDevelop创建自定义函数在HDevelop中,你可以通过创建
- HALCON与LabVIEW的联合编程 视觉与控制结合
LabVIEW开发
LabVIEW开发案例LabVIEW知识labview自动化视觉检测
HALCON与LabVIEW的联合编程在工业自动化和视觉检测领域中越来越受到重视。通过将HALCON的强大图像处理能力与LabVIEW的灵活控制功能相结合,工程师们可以开发出高效且精确的自动化系统。这种整合不仅提高了系统的整体性能,还简化了开发流程。本文将详细介绍如何实现这一联合编程,注意事项,以及一些成功的应用案例。1.HALCON与LabVIEW的简介HALCON是由MVTecSoftware
- Halcon基于灰度值的模板匹配
看海听风心情棒
计算机视觉人工智能
Halcon基于灰度值的模板匹配基于灰度值的模板匹配是最经典的模板匹配算法,也是最早提出来的模板匹配算法。这种算法的根本思想是,计算模板图像与检测图像之间的像素灰度差值的绝对值总和(SAD方法)或者平方差总和(SSD方法)。其原理是:首先选择一块ROI(感兴趣区域)作为模板图像,生成基于灰度值的模板;然后将检测图像与模板图像进行粗匹配,在检测图像与模板图像中任选一点,采取隔点拽索的方式计算二者灰度
- Phalcon 增删改查的搭建过程
攻城狮joe
LA(N)MPPHPPHPPhalconMysql
一结果展示先展示效果:1查询:2删除3插入插入之前,数据库里面表的数据如下:插入之后:
- What are some of halcon‘s best algorithms that opencv doesn‘t implement
0010000100
OpenCVopencv人工智能
HALCON,ahighlyoptimizedmachinevisionlibrary,offersarangeofadvancedalgorithmsthatOpenCVeitherdoesn’timplementorhandlesdifferently.SomeofthekeystrengthsofHALCONcomparedtoOpenCVinclude:Shape-BasedMatchin
- Halcon提取彩色多通道图像的亚像素边缘edges_color_sub_pix算子
看海听风心情棒
计算机视觉图像处理人工智能
Halcon提取彩色多通道图像的亚像素边缘edges_color_sub_pix算子如要要提取彩色多通道图像的亚像素边缘,可以使用edges_colorsubpix算子。该算子与edges_sub_pix算子的参数十分相似,但又有所区别。首先从名称上看,edgescolorsubpix算子多了一个color,表示它接受彩色多通道图像的输入,它使用Canny等滤波器提取亚像素精度的彩色边缘。另一个区
- Halcon轮廓的生成
看海听风心情棒
人工智能图像处理
Halcon轮廓的生成Halcon轮廓的生成最常用的是edges_sub_pix算子,在该算子中可以选择不同的滤波器类型,最常见的滤波器有canny和lanser2。如果输入图像是多通道的彩色图像,可以选择edges_color_sub_pix算子,其与edges_sub_piy算子类似,也推荐选择sobelfast滤波器,用于快速地提取边缘。最常用的线条提取方法是linesgauss,它具有很强
- halcon画出灰度直方图_halcon读取一张照片,并转化为灰度图像
Wakune
halcon画出灰度直方图
dev_close_window()read_image(Image,'E:/图片/123.jpg')get_image_size(Image,Width,Height)dev_open_window(,,Width,Height,'black',WindowHandle)rgb1_to_gray(Image,GrayImage)dev_display(GrayImage)输出效果:…本例子的目的
- Halcon滤波器sobel_amp算子
看海听风心情棒
计算机视觉图像处理
Halcon滤波器sobel_amp算子Halcon提供了大量的边缘滤波器,最常用的是Sobel滤波器。它是一种经典的边缘检测算子,速度和效率都非常令人满意。其在Halcon中对应的算子为sobelamp算子和sobel_dir算子,二者都是使用Sobel算子进行边缘检测。前者用于计算边缘的梯度,后者除了能表示梯度外,还能表示边缘的方向,本文主要介绍sobel_amp算子。下面以一个简单的例子说明
- Halcon经典的边缘检测算子
看海听风心情棒
计算机视觉深度学习人工智能
Halcon经典的边缘检测算子文章目录Halcon经典的边缘检测算子1.Sobel算子2.Laplace算子3.Canny算子4.总结关于边缘检测,有许多经典的算子,各大图形处理库都有各自的边缘检测算子,这里简要介绍几种。1.Sobel算子Sobel算子结合了高斯平滑和微分求导。它是一阶导数的边缘检测算子,使用卷积核对图像中的每个像素点做卷积和运算,然后采用合适的阈值提取边缘。Soble算子有两个
- HALCON error #5215: Error while opening the file in operator write_region”
光头达
wpfc#halcon
出现HALCONerror#5215:Errorwhileopeningthefileinoperatorwrite_region”是因为从halcon中导出的工程修改了项目的根目录,导致找不到文件路径才报错1.找到导出的.cs文件中的privatestaticstring_resource_path="./********"将其改成privatestaticstring_resource_pat
- Halcon 灰度区域的面积和中心
看海听风心情棒
计算机视觉人工智能算法
Halcon灰度区域的面积和中心与根据形状特征求面积的方法类似,灰度值图像也可以使用算子直接求出区域的面积和重心。这里用area_center_gray算子计算一幅灰度值图像的面积和中心。area_center_gray算子与area_center算子类似,都可以求区域的中心。但不同的是,在用areacenter_gray算子求灰度图像的面积时,图像的灰度值可以理解为图像的“高度”,其面积可以理解
- halcon中如何截取字符串一部分
视觉人机器视觉
机器视觉Halcon大总结人工智能深度学习图像处理计算机视觉视觉检测
path:='C:/Users/admini/Desktop/vision1/1.bmp'**//**:从后向前获取第一个字符“/”的下标tuple_strrstr(path,'/',Position)**//**:获取字符长度tuple_strlen(path,Length)**//**:截取指定起始下标到结束下标长度的字符串tuple_substr(path,Position+1,Length
- Halcon区域的灰度特征值
看海听风心情棒
计算机视觉图像处理人工智能
Halcon区域的灰度特征值gray_features算子用于计算指定区域的灰度特征值。其输入是一组区域,每个区域的特征都存储在一组value数组中。典型的基于灰度值的特征如下:(1)area:灰度区域面积。(2)row:中心点的行坐标。(3)colum:中心点的列坐标。(4)ra:椭圆的长轴。(5)rb:椭圆的短轴。(6)phi:等效椭圆的角度。(7)min:灰度的最小值。(8)max:灰度的最
- CSharp联合halcon实现模板匹配
吾与谁归in
C#学习Halconc#图像处理计算机视觉视觉检测
前言1、加载并显示图像功能。2、图像拖动缩放功能。3、绘制ROI:矩形、方向矩形、圆形、椭圆形。4、创建模板:参数修改、模板轮廓显示。5、匹配模板:参数修改、匹配轮廓显示、匹配结果显示。案例实操代码结构HalconModelSet_Ex:该目录空间下存放halcon算子相关模型(算子参数)。HalconTools:该目录空间下存放图像转换、ROI相关(类、方法、事件)。Models:该目录空间存放
- Halcon计算封闭区域(孔洞)的面积
看海听风心情棒
计算机视觉人工智能图像处理目标跟踪
Halcon计算封闭区域(孔洞)的面积除了可以用area_center算子计算区域的面积以外,在Halcon中还可以使用area_holes算子计算图像中封闭区域(孔洞)的面积。该面积指的是区域中孔洞部分包含的像素数。一个区域中可能不只包含一个孔洞区域,因此该算子将返回所有孔洞区域的面积之和。图(a)为输入的彩色图像,图(b)为经阀值分割并输出了孔洞面积的图像,其中深色部分为提取的孔洞区域,浅色部
- Halcon根据特征值选择区域
看海听风心情棒
计算机视觉人工智能图像处理目标跟踪
Halcon根据特征值选择区域关于提取图像的特征,比较常用的一个算子是select_shape算子,它能高效地根据特征提取出符合条件的区域。该算子的原型如下:select_shape(Regions:SelectedRegions:Features,Operation,Min,Max:)参数1和参数2分别表示输入和输出的区域,值得关注的是参数3Features。这里提供了一个包括多种特征参数的列表
- c#,dotnet, DataMatrix 类型二维码深度识别,OCR,(基于 Halcon)
learn.
ocr深度学习c#
代码中部分调用的c++函数参数,具体说明自行研究~(我也是参考的其他资源,还没研究透彻)例如:HOperatorSet.GenRectangle2(),2000,2000,0,2000,2000这些数字应该是选取的图片解析范围、尺寸(长、宽),2000更改成100后可能只会识别到部分二维码。效果图:链接:https://pan.baidu.com/s/1W-bk8F0hZGNl46GiVpZbwQ
- 【HALCON常用的一些操作】
pengkedz
视觉检测
HALCON文件夹遍历和文件筛选*遍历文件夹list_image_files('C:/Users/Public/Documents/MVTec/HALCON-17.12-Progress/examples/images','default','recursive',ImageFiles)*筛选bmp及jmp格式的图片tuple_regexp_select(ImageFiles,['\\.(bmp|
- 博客摘录「 【halcon】轮廓拟合相关算子」2023年5月26日
o0Orange
笔记
特别是使用了union_adjacent_contours_xld之后注意一定要使用segment_contours_xld进行打断,然后才能使用get_contour_global_attrib_xld。
- halcon 算子
m_0806
HALCON计算机视觉
语法基础*a:=1赋值语句**if(a==1)循环语句*b:=1*else*b:=2*endif**fori:=1to10by1for循环*a:=a+1*endfor**switch(a)switch语句*case1:*c:=1*break*case2:*c:=2*break*endswitch**while(a)while语句*a:=a+1*endwhile读取图片并改变某点像素的灰度值*rea
- PHP,安卓,UI,java,linux视频教程合集
cocos2d-x小菜
javaUIPHPandroidlinux
╔-----------------------------------╗┆
- 各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
bozch
.net.net mvc
在.net mvc5中,在执行某一操作的时候,出现了如下错误:
各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
经查询当前的操作与错误内容无关,经过对错误信息的排查发现,事故出现在数据库迁移上。
回想过去: 在迁移之前已经对数据库进行了添加字段操作,再次进行迁移插入XXX字段的时候,就会提示如上错误。
&
- Java 对象大小的计算
e200702084
java
Java对象的大小
如何计算一个对象的大小呢?
 
- Mybatis Spring
171815164
mybatis
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
CustomerService userService = (CustomerService) ac.getBean("customerService");
Customer cust
- JVM 不稳定参数
g21121
jvm
-XX 参数被称为不稳定参数,之所以这么叫是因为此类参数的设置很容易引起JVM 性能上的差异,使JVM 存在极大的不稳定性。当然这是在非合理设置的前提下,如果此类参数设置合理讲大大提高JVM 的性能及稳定性。 可以说“不稳定参数”
- 用户自动登录网站
永夜-极光
用户
1.目标:实现用户登录后,再次登录就自动登录,无需用户名和密码
2.思路:将用户的信息保存为cookie
每次用户访问网站,通过filter拦截所有请求,在filter中读取所有的cookie,如果找到了保存登录信息的cookie,那么在cookie中读取登录信息,然后直接
- centos7 安装后失去win7的引导记录
程序员是怎么炼成的
操作系统
1.使用root身份(必须)打开 /boot/grub2/grub.cfg 2.找到 ### BEGIN /etc/grub.d/30_os-prober ### 在后面添加 menuentry "Windows 7 (loader) (on /dev/sda1)" { 
- Oracle 10g 官方中文安装帮助文档以及Oracle官方中文教程文档下载
aijuans
oracle
Oracle 10g 官方中文安装帮助文档下载:http://download.csdn.net/tag/Oracle%E4%B8%AD%E6%96%87API%EF%BC%8COracle%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3%EF%BC%8Coracle%E5%AD%A6%E4%B9%A0%E6%96%87%E6%A1%A3 Oracle 10g 官方中文教程
- JavaEE开源快速开发平台G4Studio_V3.2发布了
無為子
AOPoraclemysqljavaeeG4Studio
我非常高兴地宣布,今天我们最新的JavaEE开源快速开发平台G4Studio_V3.2版本已经正式发布。大家可以通过如下地址下载。
访问G4Studio网站
http://www.g4it.org
G4Studio_V3.2版本变更日志
功能新增
(1).新增了系统右下角滑出提示窗口功能。
(2).新增了文件资源的Zip压缩和解压缩
- Oracle常用的单行函数应用技巧总结
百合不是茶
日期函数转换函数(核心)数字函数通用函数(核心)字符函数
单行函数; 字符函数,数字函数,日期函数,转换函数(核心),通用函数(核心)
一:字符函数:
.UPPER(字符串) 将字符串转为大写
.LOWER (字符串) 将字符串转为小写
.INITCAP(字符串) 将首字母大写
.LENGTH (字符串) 字符串的长度
.REPLACE(字符串,'A','_') 将字符串字符A转换成_
- Mockito异常测试实例
bijian1013
java单元测试mockito
Mockito异常测试实例:
package com.bijian.study;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.junit.Assert;
import org.junit.Test;
import org.mockito.
- GA与量子恒道统计
Bill_chen
JavaScript浏览器百度Google防火墙
前一阵子,统计**网址时,Google Analytics(GA) 和量子恒道统计(也称量子统计),数据有较大的偏差,仔细找相关资料研究了下,总结如下:
为何GA和量子网站统计(量子统计前身为雅虎统计)结果不同?
首先:没有一种网站统计工具能保证百分之百的准确出现该问题可能有以下几个原因:(1)不同的统计分析系统的算法机制不同;(2)统计代码放置的位置和前后
- 【Linux命令三】Top命令
bit1129
linux命令
Linux的Top命令类似于Windows的任务管理器,可以查看当前系统的运行情况,包括CPU、内存的使用情况等。如下是一个Top命令的执行结果:
top - 21:22:04 up 1 day, 23:49, 1 user, load average: 1.10, 1.66, 1.99
Tasks: 202 total, 4 running, 198 sl
- spring四种依赖注入方式
白糖_
spring
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。依赖注入的另一种说法是“控制反转”,通俗的理解是:平常我们new一个实例,这个实例的控制权是我
- angular.injector
boyitech
AngularJSAngularJS API
angular.injector
描述: 创建一个injector对象, 调用injector对象的方法可以获得angular的service, 或者用来做依赖注入. 使用方法: angular.injector(modules, [strictDi]) 参数详解: Param Type Details mod
- java-同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待
bylijinnan
Integer
public class PC {
/**
* 题目:生产者-消费者。
* 同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待。
*/
private static final Integer[] val=new Integer[10];
private static
- 使用Struts2.2.1配置
Chen.H
apachespringWebxmlstruts
Struts2.2.1 需要如下 jar包: commons-fileupload-1.2.1.jar commons-io-1.3.2.jar commons-logging-1.0.4.jar freemarker-2.3.16.jar javassist-3.7.ga.jar ognl-3.0.jar spring.jar
struts2-core-2.2.1.jar struts2-sp
- [职业与教育]青春之歌
comsci
教育
每个人都有自己的青春之歌............但是我要说的却不是青春...
大家如果在自己的职业生涯没有给自己以后创业留一点点机会,仅仅凭学历和人脉关系,是难以在竞争激烈的市场中生存下去的....
&nbs
- oracle连接(join)中使用using关键字
daizj
JOINoraclesqlusing
在oracle连接(join)中使用using关键字
34. View the Exhibit and examine the structure of the ORDERS and ORDER_ITEMS tables.
Evaluate the following SQL statement:
SELECT oi.order_id, product_id, order_date
FRO
- NIO示例
daysinsun
nio
NIO服务端代码:
public class NIOServer {
private Selector selector;
public void startServer(int port) throws IOException {
ServerSocketChannel serverChannel = ServerSocketChannel.open(
- C语言学习homework1
dcj3sjt126com
chomework
0、 课堂练习做完
1、使用sizeof计算出你所知道的所有的类型占用的空间。
int x;
sizeof(x);
sizeof(int);
# include <stdio.h>
int main(void)
{
int x1;
char x2;
double x3;
float x4;
printf(&quo
- select in order by , mysql排序
dcj3sjt126com
mysql
If i select like this:
SELECT id FROM users WHERE id IN(3,4,8,1);
This by default will select users in this order
1,3,4,8,
I would like to select them in the same order that i put IN() values so:
- 页面校验-新建项目
fanxiaolong
页面校验
$(document).ready(
function() {
var flag = true;
$('#changeform').submit(function() {
var projectScValNull = true;
var s ="";
var parent_id = $("#parent_id").v
- Ehcache(02)——ehcache.xml简介
234390216
ehcacheehcache.xml简介
ehcache.xml简介
ehcache.xml文件是用来定义Ehcache的配置信息的,更准确的来说它是定义CacheManager的配置信息的。根据之前我们在《Ehcache简介》一文中对CacheManager的介绍我们知道一切Ehcache的应用都是从CacheManager开始的。在不指定配置信
- junit 4.11中三个新功能
jackyrong
java
junit 4.11中两个新增的功能,首先是注解中可以参数化,比如
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runn
- 国外程序员爱用苹果Mac电脑的10大理由
php教程分享
windowsPHPunixMicrosoftperl
Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里。普通用户喜欢 Mac 可以理解,毕竟 Mac 设计美观,简单好用,没有病毒。那么为什么专业人士也对 Mac 情有独钟呢?从个人使用经验来看我想有下面几个原因:
1、Mac OS X 是基于 Unix 的
这一点太重要了,尤其是对开发人员,至少对于我来说很重要,这意味着Unix 下一堆好用的工具都可以随手捡到。如果你是个 wi
- 位运算、异或的实际应用
wenjinglian
位运算
一. 位操作基础,用一张表描述位操作符的应用规则并详细解释。
二. 常用位操作小技巧,有判断奇偶、交换两数、变换符号、求绝对值。
三. 位操作与空间压缩,针对筛素数进行空间压缩。
&n
- weblogic部署项目出现的一些问题(持续补充中……)
Everyday都不同
weblogic部署失败
好吧,weblogic的问题确实……
问题一:
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: URL [zip:E:/weblogic/user_projects/domains/base_domain/serve
- tomcat7性能调优(01)
toknowme
tomcat7
Tomcat优化: 1、最大连接数最大线程等设置
<Connector port="8082" protocol="HTTP/1.1"
useBodyEncodingForURI="t
- PO VO DAO DTO BO TO概念与区别
xp9802
javaDAO设计模式bean领域模型
O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写。通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据。在O/R Mapping的世界里,有两个基本的也是重要的东东需要了解,即VO,PO。
它们的关系应该是相互独立的,一个VO可以只是PO的部分,也可以是多个PO构成,同样也可以等同于一个PO(指的是他们的属性)。这样,PO独立出来,数据持