opencv&vc++学习笔记
OPENCV初级教程及范例

OPENCV初级教程及范例一、安装OPENCV要使用OPENCV,首先需要在计算机上安装它。
安装步骤如下:3.打开命令行工具,并进入解压后的文件夹。
4.运行以下命令来编译和安装OPENCV:cmake .makesudo make install二、OPENCV基本概念1.图像数据结构在OPENCV中,图像被表示为一个多维数组,每个数组元素对应着图像中的一个像素。
例如,对于一个RGB彩色图像,每个像素由三个颜色通道(红、绿、蓝)组成,可以使用3维数组来表示。
2.图像读取和显示import cv2#读取图像image = cv2.imread("image.jpg")#显示图像cv2.imshow("Image", image)cv2.waitKey(0)cv2.destroyAllWindows3.图像处理import cv2import numpy as np#读取图像image = cv2.imread("image.jpg")#图像模糊处理kernel = np.ones((5,5), np.float32) / 25blurred = cv2.filter2D(image, -1, kernel) #显示处理后的图像cv2.imshow("Blurred Image", blurred)cv2.waitKey(0)cv2.destroyAllWindows三、OPENCV实例以下是一些使用OPENCV的实际范例:1.边缘检测import cv2#读取图像image = cv2.imread("image.jpg", 0)#边缘检测edges = cv2.Canny(image, 100, 200)#显示边缘图像cv2.imshow("Edges", edges)cv2.waitKey(0)cv2.destroyAllWindows2.目标识别import cv2#读取图像image = cv2.imread("image.jpg")#创建目标识别器cascade = cv2.CascadeClassifier("cascade.xml")#对图像进行目标识别objects = cascade.detectMultiScale(image, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))#绘制识别结果for (x, y, w, h) in objects:cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)#显示识别结果cv2.imshow("Objects", image)cv2.waitKey(0)cv2.destroyAllWindows这些范例只是OPENCV功能的冰山一角,OPENCV还提供了很多强大的功能和工具。
opencv基本使用方法

OpenCV基本使用方法一、介绍O p en CV是一个开源的计算机视觉库,提供了丰富的图像处理和计算机视觉算法,可以用于图像处理、目标检测、人脸识别等各种应用。
本文档将介绍O pe nC V的基本使用方法,包括图像读取、显示、保存以及常用的图像处理操作。
二、图像读取与显示1.读取图像要读取图像,可以使用`cv2.im re ad()`函数。
该函数接受图像文件的路径作为参数,并返回一个表示图像的多维数组。
i m po rt cv2i m ag e=cv2.im re ad("im ag e.jp g")2.显示图像要显示图像,可以使用`cv2.im sh ow()`函数。
该函数接受一个窗口名称和一个表示图像的多维数组作为参数。
i m po rt cv2i m ag e=cv2.im re ad("im ag e.jp g")c v2.im sh ow("Im age",i ma ge)c v2.wa it Ke y(0)c v2.de st ro yA ll Wind ow s()三、图像保存与格式转换1.保存图像要保存图像,可以使用`cv2.im wr it e()`函数。
该函数接受图像保存的路径和表示图像的多维数组作为参数。
i m po rt cv2i m ag e=cv2.im re ad("im ag e.jp g")c v2.im wr it e("n ew_i ma ge.j pg",im age)2.格式转换要将图像从一种格式转换为另一种格式,可以使用`c v2.c vt Co lo r()`函数。
该函数接受表示图像的多维数组和转换的标志作为参数。
i m po rt cv2i m ag e=cv2.im re ad("im ag e.jp g")g r ay_i ma ge=c v2.cv t Co lo r(im ag e,cv2.CO LO R_BG R2GR AY)四、常用的图像处理操作1.转换为灰度图要将彩色图像转换为灰度图,可以使用`c v2.cv tC ol or()`函数,并指定转换标志为`cv2.CO LO R_BG R2GR AY`。
opencv的交叉编译

opencv的交叉编译(实用版)目录1.OpenCV 简介2.交叉编译的概念与作用3.OpenCV 的交叉编译流程4.交叉编译 OpenCV 的实践方法与技巧5.总结正文1.OpenCV 简介OpenCV(Open Source Computer Vision Library,开源计算机视觉库)是一个开源的计算机视觉和机器学习软件库。
它包含了大量的图像处理、视频分析和计算机视觉方面的功能。
OpenCV 适用于各种操作系统,如 Windows、Linux 和 Mac OS 等,并且支持多种编程语言,如 C++、Python 和 Java 等。
2.交叉编译的概念与作用交叉编译是指在一个平台上编译得到另一个平台上可执行的代码。
例如,在 Windows 平台上编译得到 Linux 平台上可执行的代码。
交叉编译的作用主要体现在以下几点:(1)满足不同平台用户的需求:通过交叉编译,可以让一个软件在不同的操作系统上都能运行。
(2)降低开发成本:交叉编译可以减少在不同平台上进行开发的工作量,提高开发效率。
(3)提高软件的可移植性:交叉编译可以使软件更容易在不同的硬件和操作系统上进行迁移。
3.OpenCV 的交叉编译流程OpenCV 的交叉编译流程主要包括以下几个步骤:(1)准备编译环境:首先需要安装交叉编译所需的工具链,例如在Windows 平台上编译 Linux 可执行文件,需要安装 Linux 的交叉编译工具链。
(2)下载 OpenCV 源码:从 OpenCV 的官方网站下载相应的源代码。
(3)配置编译选项:根据目标平台的需求,设置编译选项,例如指定编译器、链接器和目标安装路径等。
(4)编译 OpenCV:使用交叉编译工具链编译 OpenCV 源码。
(5)安装 OpenCV:将编译好的 OpenCV 安装到目标平台上。
4.交叉编译 OpenCV 的实践方法与技巧(1)选择合适的交叉编译工具链:根据目标平台的架构(如 x86 或ARM)选择合适的交叉编译工具链。
opencv原理

opencv原理OpenCV的工作原理基于图像处理、计算机视觉和机器学习的一系列方法和算法。
它的设计目标是提供一个简单、高效、通用的计算机视觉库,使开发者能够快速地开发实时的计算机视觉应用程序。
以下是OpenCV的一些主要原理:1. 图像采集与加载:OpenCV可以从摄像头、视频文件或图像文件中采集图像数据。
它支持多种图像格式,包括JPEG、PNG、BMP等。
2. 图像预处理:在进行进一步处理之前,OpenCV通常需要对图像进行预处理。
这包括调整图像大小、灰度化、去噪、直方图均衡化和边缘检测等。
3. 特征提取:在计算机视觉任务中,特征提取是一个关键步骤。
OpenCV提供了各种方法来检测图像中的特征,如角点、边缘、线条、斑点等。
这些特征可以用于图像分类、对象识别、目标跟踪等任务。
4. 特征匹配:在一些应用中,需要在不同图像中找到相似的特征点或对象。
OpenCV提供了各种特征匹配算法,如基于模板匹配、基于特征描述符的匹配和基于兴趣点的匹配等。
5. 目标检测与跟踪:OpenCV可以通过使用分类器、机器学习算法和深度学习模型来检测和跟踪图像中的目标。
这可以用于人脸检测、行人检测、车辆检测等应用。
6. 图像分割:图像分割是将图像分成多个区域或对象的过程。
OpenCV提供了多种图像分割算法,如基于颜色、纹理、边缘等的分割方法。
7. 图像配准:图像配准是将多个图像对齐以进行比较或融合的过程。
OpenCV提供了多种图像配准方法,如特征点配准、基于几何变换的配准和基于深度学习的配准等。
8. 机器学习和深度学习:OpenCV集成了各种机器学习和深度学习算法,如支持向量机(SVM)、卷积神经网络(CNN)和循环神经网络(RNN)等。
这些算法可以用于图像分类、目标检测、图像生成等任务。
9. 图像的存储与输出:OpenCV可以将处理后的图像数据保存到文件中,支持多种图像格式。
它还可以将图像以各种方式显示出来,如窗口显示、视频流显示和Web显示等。
opencv库用法

opencv库用法
OpenCV是计算机视觉中常用的专用库,支持多语言和跨平台操作。
其在Python中的使用方法如下:
1. 导入OpenCV模块:使用`import cv2`命令。
2. 加载图片:使用`cv2.imread()`函数读取图片。
参数为1时表示加载彩色图片,参数为0时表示加载黑白图片。
3. 查看图片形状和分辨率:使用`shape`子函数输出图片的形状。
4. 显示图片:使用`cv2.imshow()`函数显示图片,参数分别为图片名称和图片对象。
OpenCV还可以用于操作摄像头、调节参数和录制视频等操作。
如果你想要了解更多关于OpenCV的用法,可以查阅相关文档或搜索相关教程。
opencv人脸识别原理

opencv人脸识别原理OpenCV(开源计算机视觉库)是一个广泛使用的计算机视觉库,其中包含了很多用于处理图像和视频的函数和算法。
在OpenCV中,人脸识别是一个重要的应用领域。
其原理主要包括以下几个步骤:1. 图像预处理:首先,将输入的图像转换为灰度图像,这是因为灰度图像只有一个通道,便于加速运算。
然后,可以对图像进行一些预处理操作,如直方图均衡化、高斯滤波等,以提高识别效果。
2. 面部检测:OpenCV使用级联分类器(Cascade Classifier)来进行面部检测。
这是一种基于机器学习的方法,通过训练一个分类器来识别面部特征。
级联分类器是由多个简单特征分类器级联而成,使用Haar特征提取器和Adaboost训练技术来实现。
3. 特征提取:一旦检测到面部区域,OpenCV会使用特征提取算法来提取面部的特征。
这些特征可以是面部区域的几何特征,如眼睛、鼻子、嘴巴的位置和形状等,也可以是纹理特征,如局部二值模式(LBP)、小波变换等。
4. 特征匹配:接下来,OpenCV将使用已知的特征模板与提取到的面部特征进行匹配。
这可以通过比较特征向量之间的距离或使用分类器来完成。
匹配过程将对输入的面部特征与已知的人脸特征进行比对,以确定识别结果。
5. 人脸识别:最后,OpenCV将根据匹配结果进行人脸识别。
如果匹配率达到预设的阈值,则认为是同一个人。
否则,将确定为其他人或无法识别。
总的来说,OpenCV的人脸识别原理是通过面部检测、特征提取和特征匹配等步骤来实现的。
通过这些步骤,OpenCV能够准确地识别并区分不同的人脸。
opencv所有函数汇总
opencv所有函数汇总OpenCV是一个开放源代码的计算机视觉和机器学习软件库。
它拥有多种函数和方法,可用于处理图像和视频、目标检测、特征提取、图像分割、图像配准、机器学习等多个领域。
以下是一些常用的OpenCV函数的汇总:1. cv2.imread该函数读取图像文件,并返回一个NumPy数组,该数组表示图像的像素值。
2. cv2.imshow用于在窗口中显示图像。
3. cv2.imwrite将图像保存到指定的文件路径。
4. cv2.cvtColor用于将图像从一个颜色空间转换为另一个颜色空间。
5. cv2.resize可用于调整图像的大小。
6. cv2.flip用于翻转图像。
7. cv2.rectangle绘制矩形框。
8. cv2.circle绘制圆形。
9. cv2.line绘制线条。
10. cv2.putText在图像上绘制文本。
11. cv2.threshold将图像分割为黑白两个阈值。
12. cv2.adaptiveThreshold根据图像不同区域的光照条件对图像进行阈值处理。
13. cv2.medianBlur对图像进行中值滤波。
14. cv2.GaussianBlur对图像进行高斯模糊。
15. cv2.bilateralFilter对图像进行双边滤波。
16. cv2.contourArea计算轮廓的面积。
17. cv2.findContours找到图像中的轮廓。
18. cv2.drawContours在图像上绘制轮廓。
19. cv2.matchTemplate在图像中查找指定模板的匹配项。
20. cv2.HoughCircles在图像中检测圆。
21. cv2.HoughLines在图像中检测直线。
22. cv2.goodFeaturesToTrack在图像中寻找角点。
23. cv2.findHomography计算两个图像之间的单应性矩阵。
24. cv2.warpPerspective将图像进行透视变换。
opencv 项目案例
opencv 项目案例OpenCV是一个开源的计算机视觉库,它提供了丰富的函数和算法,用于处理和分析图像和视频数据。
下面是一些基于OpenCV的项目案例以及相关参考内容,希望对您有所帮助。
1. 人脸识别人脸识别是计算机视觉领域的一项重要任务,可以应用于安防监控、人机交互等领域。
参考内容可以包括:- 人脸检测:使用OpenCV的人脸检测器(如Haar级联分类器)对输入图像进行人脸检测。
- 特征提取:使用OpenCV的特征提取算法(如局部二值模式直方图)从人脸图像中提取特征向量。
- 训练分类器:使用OpenCV的机器学习算法(如支持向量机)来训练一个人脸分类器。
- 人脸识别:使用训练好的分类器对新的人脸图像进行识别。
2. 手势识别手势识别可以应用于人机交互、虚拟现实等领域。
参考内容可以包括:- 手势检测:使用OpenCV的背景减除算法和运动跟踪算法对输入视频中的手部进行检测和跟踪。
- 手势识别:根据手势的形状、轮廓、手指数量等特征,使用OpenCV的图像处理和机器学习算法对手势进行识别。
- 手势控制:根据识别出的手势,实现对计算机或设备的控制(如控制鼠标、游戏操作等)。
3. 目标检测与跟踪目标检测与跟踪可以应用于安防监控、自动驾驶等领域。
参考内容可以包括:- 目标检测:使用OpenCV的目标检测器(如级联分类器、深度学习模型)对输入图像或视频中的目标进行检测。
- 目标跟踪:根据检测到的目标,使用OpenCV的运动跟踪算法(如卡尔曼滤波、均值漂移)对目标进行跟踪。
- 多目标跟踪:对于多个目标,使用OpenCV的多目标跟踪算法(如多种滤波方法的组合)进行跟踪与管理。
4. 图像处理与增强图像处理与增强可以应用于图像编辑、美颜相机等领域。
参考内容可以包括:- 图像滤波:使用OpenCV的滤波算法(如均值滤波、高斯滤波)对图像进行平滑处理或边缘增强。
- 图像增强:使用OpenCV的直方图均衡化、自适应直方图均衡化等算法对图像进行增强。
opencv中的68个关键点介绍
opencv中的68个关键点介绍【1】概述OpenCV的关键点OpenCV(Open Source Computer Vision Library,开源计算机视觉库)是一款著名的计算机视觉库,包含了丰富的图像处理、视频分析和计算机视觉方面的功能。
其中,关键点(Keypoint)是OpenCV中一种重要的特征检测和描述方法。
关键点检测是计算机视觉中的一项基本任务,它通过对图像中的特征点进行检测,为后续的图像识别、匹配和跟踪等任务提供基础。
【2】68个关键点的分类与作用OpenCV提供了68个预定义的关键点,这些关键点分为面部特征点和身体特征点两类。
其中,面部特征点包括眼睛、鼻子、嘴巴、耳朵等,共计15个;身体特征点包括肩部、肘部、手腕、膝盖、脚踝等,共计53个。
这些关键点的作用在于提取图像中的特征,便于进行后续的匹配和分析。
【3】关键点在人脸识别中的应用在人脸识别领域,关键点检测是一项重要任务。
通过检测人脸图像中的关键点,可以实现人脸对齐、人脸比对等功能。
在人脸识别过程中,首先需要对人脸图像进行预处理,如灰度化、归一化等;然后利用特征检测算法(如SIFT、SURF、ORB等)检测人脸图像中的关键点;最后,通过关键点匹配和几何约束,实现人脸识别。
【4】关键点在物体检测中的应用在物体检测领域,关键点检测同样具有重要作用。
通过对图像中的物体边界框进行关键点检测,可以实现对物体的精确识别和定位。
在物体检测过程中,首先需要对图像进行预处理,如图像分割、特征提取等;然后利用目标检测算法(如R-CNN、Fast R-CNN、Faster R-CNN等)识别物体;最后,通过对物体边界框的关键点检测,提高物体识别的准确性和可靠性。
【5】关键点在运动跟踪中的应用在运动跟踪领域,关键点检测有助于跟踪目标的运动轨迹。
通过对视频序列中的关键点进行检测和匹配,可以实现对目标的连续跟踪。
在运动跟踪过程中,首先需要对视频序列进行预处理,如滤波、去噪等;然后利用跟踪算法(如TLD、KCF、SORT等)对目标进行跟踪;最后,通过对关键点的检测和匹配,提高目标跟踪的准确性和稳定性。
opencv手册
opencv手册“OpenCV手册”指的是关于OpenCV(开源计算机视觉库)的详细指南。
OpenCV是一个包含数百种计算机视觉算法的开源库,广泛应用于图像处理、机器视觉和深度学习等领域。
该手册旨在为用户提供关于OpenCV的全面和深入的信息,以帮助用户快速上手并高效地使用该库。
以下是 opencv手册内容:1.概述:介绍OpenCV的基本概念、发展历程、应用领域和优势等。
2.安装与配置:提供在不同操作系统上安装和配置OpenCV的详细步骤,包括依赖项的安装、编译和安装等。
3.核心模块:介绍OpenCV的核心模块和功能,包括图像处理、特征检测、目标跟踪等。
4.图像处理:深入介绍图像处理的各种算法和技术,如滤波、色彩空间转换、边缘检测等。
5.计算机视觉:详细阐述计算机视觉的基本概念和算法,包括特征检测、目标跟踪和姿态估计等。
6.机器学习与深度学习:介绍如何使用OpenCV进行机器学习和深度学习任务,包括模型训练、数据预处理等。
7.实践应用:提供实际应用OpenCV的示例和案例,如人脸识别、物体检测和交通监控等。
8.优化与扩展:指导用户如何优化OpenCV的性能和扩展其功能,包括使用并行计算和自定义算法等。
9.文档与资源:提供OpenCV的官方文档、社区论坛和其他相关资源的链接,以便用户获取更多信息和支持。
10.常见问题与解答:总结使用OpenCV过程中常见的问题和解决方法,帮助用户快速解决问题。
总之,OpenCV手册是一本全面而深入的指南,旨在为用户提供有关OpenCV的详细信息和使用指导。
通过阅读这本手册,用户可以快速上手并掌握OpenCV的核心功能和应用技巧,从而更好地利用该库进行计算机视觉相关的项目开发和应用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.前缀:
#include<opencv2\opencv.hpp>
#include<iostream>
#include<string>
using namespace cv;
using namespace std;
Opencv2.4以后的头文件:/GWeuro/archive/2012/12/21/2828035.html
调用opencv库时,可以头文件写成:
view sourceprint?
1.#include <opencv2/opencv.hpp>
就包含了opencv库所有头文件。
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
关于winut的错误:
加入一行:#define POINTER_64 __ptr64
typedef void *PVOID;
typedef void * POINTER_64 PVOID64;
fatal error LNK1104: 无法打开文件“cxcore.lib
链接器中附加依赖项出了问题,没有搞定最新2.4.9依赖项:属性-链接器-输入-附加依赖项
删除
#pragma comment(lib,"cxcore")
#pragma comment(lib,"cv")
#pragma comment(lib,"highgui")
解决无法打开文件“cxcore.lib的问题
Cannot find or open the PDB file
直接Ctrl+F5运行结果
fatal error C1083: 无T法ぁ?打洙?开a包悒?括ぁ?文?件t:“°cv.h”±: No such file or directory 改成最新版包含,且修改包含目录和库目录
/linweixuan/article/details/1805302 glut.h头文件总是和C++中定义的
exit冲突
Debug进展 cvmatrix3和cvcircleAA,de掉这两个bug需要百度以外的方法,学习查资料,翻例程Opencv中英文书在线文档离线文档例程
Iostream:用于实现vc++的输入输出,利用类似cin,cout等函数:
fatal error LNK1123: 转换到COFF 期间失败: 文件无效或损坏项目\属性\配置属性\清单工具\输入和输出\嵌入清单:原来是“是”,改成“否”。
Opencv初始头文件,搞懂,include一个东西足矣:
双摄像机图像导入:搞定:
使用directshow采集图像,directshow库不知道怎么搞,程序没调通,关注后续directshow 有无应用:
利用MFC的Picture控件显示图像+播放视频和捕获摄像头画面没搞定:参考英文教程重新搞:
接下来工作:多参考几个教程搞定一个opencv MFC程序,可能需要一些vc++的入门书籍Vc++借书,网上搜入门资料,搞定matlab标定:
11.06
Include顺序$(OPENCV)\include;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)in clude;D:\Program Files\opencv\DirectShow\include
MFC:看教程先搞定科普部分再深入:
搞定winutbug,error1123半搞定:
两个mfc例程依旧搞不懂:
MFC对话框程序,创建对话框类,添加消息处理函数
11.07
搞通某mfc读取图像程序,对MFC编程和类的用法有了初步的认识:
Ps:成员函数/变量:类里面定义的函数/变量:
接下来怎么搞?照着例程做只是开始,需要以任务为导向:
搜一下有没有类似的打project可供参考?
给出界面,一步步实现所需的功能:
可能由于没有vc++编程的经验会走很多弯路,但是这已经是最快的方法:
Opencv编程简介+vc++project编程思想和构建学习:
重新整理所用算法的思路,以此为指导推进算法编程实现:
11.10
带着目的,根据项目推进需要学习必需的变成内容:视频处理暂时不做,首先做单个图像的图像处理:
CxxxDlg类中可以添加函数和变量,所添加函数和变量代码全在CxxxDlg.cpp中,模块化添加:
CxxxDlg.cpp中另有一些系统函数,分别对应CxxxDlg中的某个类,根据任务需求添加相应
代码即可:Oninitdialog InitInstance两个类干吗用?
Hough变换:所需的只是嵌入到MFC里,参数可以根据实际需求慢慢调整:
接下来研究视频中提取一张图片和直线求交点:
Csdn pudn 双目位姿测量关键词:
需求重新考虑下粗算部分的算法流程,完全构思好,列一个实现list出来:
Cvut_test程序:
删除了VS100COMNTOOLS D:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\环境变量解决error MSB6006: “CL.exe”已退出代码为2
CvMat.mbug搞不定,暂时放弃:
命令行error D8038: 无效参数:
由于文件路径有中文字符所致:
11.18
Opengl glut剖析:
glFlush(); //和单缓冲GLUT_SINGLE 配合使用
//glutSwapBuffers(); //和双缓冲GLUT_DOUBLE配合使用
Main.cpp里函数需要先声明才能调用:error C2065: “°puck”±: 未′声Θ?明÷的?标括?识?符?
11.19
(1)世界坐标系:无论如何变换,世界坐标系都不动,以屏幕中心为原点(0, 0, 0),你面对屏幕,你的右边是x正轴,上面是y正轴,屏幕指向你的为z正轴。
(2)当前绘图坐标系(即局部坐标系):当前绘图坐标系是绘制物体时的坐标系。
程序刚初始化时,世界坐标系和当前绘图坐标系是重合的,当用glTranslatef()等变换函数做移动和旋转时,都是改变的当前绘图坐标系,改变的位置都是当前绘图坐标系相对自己的x,y,z轴所做的改变,改变以后,再绘图时,都是在当前绘图坐标系进行绘图,所有的函数参数也都是相对当前绘图坐标系来讲的。
glLoadIdentity():另当前绘图坐标系从新回到世界坐标系的位置,另他们重合。
glTranslatef(x,y,z):使绘图坐标系相对世界坐标系沿x,y,z轴移动x,y,z个单位
11.25:
Xml和yml文件用于存储矩阵数据:
Opencv可用来作跟踪,包括kalman滤波和mean-shift方法、光流法等:有从视频中抓取图像然后做跟踪分析的例程:
稀疏点匹配:用目标边缘的轮廓进行匹配,以向量为判据:个人的算法能否将灰度差值和向量结合起来?
BM算法:貌似不需要搞懂原理,opencv默认使用此算法:
Opencv2计算机编程手册:程序风格与前述有了非常大的不同,需要重新学习,读懂并且慢慢学会根据自己的任务需求写程序:
某人脸pose estimation用到AAM和POSIT,深入研究:。