* **************************************************************************************************
*  电路板投影矫正
*Projective rectification of a circuit board
* **************************************************************************************************
* 关闭窗体
dev_close_window ()
*设置窗体更新为off
dev_update_window ('off')
*读取左右窗体图片
read_image (Image1, '/stereo/uncalib/board_l')
read_image (Image2, '/stereo/uncalib/board_r')
*计算像素的最大和最小值,按照最大值比例化各个像素
scale_image_max (Image1, Image1)
scale_image_max (Image2, Image2)
*获取图像指针
get_image_pointer1 (Image1, Pointer, Type, Width, Height)
ScaleImage := 0.4
*打开窗体
dev_open_window (0, 0, Width * ScaleImage, Height * ScaleImage, 'black', Window1)
*设置显示字体
set_display_font (Window1, 14, 'mono', 'true', 'false')
*显示图像1
dev_display (Image1)
*打开窗体
dev_open_window (0, Width * ScaleImage + 8, Width * ScaleImage, Height * ScaleImage, 'black', Window2)
*显示图像2
dev_display (Image2)
*聚焦窗体1
dev_set_window (Window1)
*显示信息
disp_message (Window1, 'Uncalibrated Stereo Image Pair', 'window', 12, 12, 'black', 'true')
* Compute Fundamental Matrix
* 用harris算子计算兴趣点也就是基础矩阵
points_harris (Image1, 3, 1, 0.2, 1e5, Row1, Col1)
points_harris (Image2, 3, 1, 0.2, 1e5, Row2, Col2)
*通过两个图像之间的对应的点对来自动计算两个图像之间的基本转换矩阵,
match_fundamental_matrix_ransac (Image1, Image2, Row1, Col1, Row2, Col2, 'ncc', 21, 0, 200, 20, 50, 0, 0.9, 'gold_standard', 0.3, 1, FMatrix, CovFMat, Error, Points1, Points2)
Row1 := subset(Row1,Points1)
Col1 := subset(Col1,Points1)
Row2 := subset(Row2,Points2)
Col2 := subset(Col2,Points2)
* 投影矫正开始
* Projective Rectification
* 执行立体投影矫正
gen_binocular_proj_rectification (Map1, Map2, FMatrix, [], Width, Height, Width, Height, 1, 'bilinear_map', CovFMatRect, H1, H2)
*投影图像
map_image (Image1, Map1, Image1)
map_image (Image2, Map2, Image2)
*投影变换
projective_trans_pixel (H1, Row1, Col1, Row1, Col1)
projective_trans_pixel (H2, Row2, Col2, Row2, Col2)
*
*
* Find the dominant plane in the images by computing the 2D homography.
* Then, the left image is transformed such that points lying in this dominant plane do coincide in both images.
* *通过两个图像之间的对应的点对来自动计算两个图像之间的基本投影变换
proj_match_points_ransac (Image1, Image2, Row1, Col1, Row2, Col2, 'ncc', 11, 0, 200, 100, 100, 0, 0.6, 'normalized_dlt', 2, 1, HomMat, Points1, Points2)
*投影变换图像
projective_trans_image (Image1, Image1, HomMat, 'bilinear', 'false', 'true')
* 1. image (cyan) and the 2. image (red) overlaid:
* Regions close to the dominant plane are gray, whereas regions distant to this plane are red or cyan.
  *右下角显示 'Press Run (F5) to continue' 这个信息
disp_continue_message (Window1, 'black', 'true')
stop ()
*把三个图像转换为一个三通道图像
compose3 (Image1, Image2, Image2, Image)
*湖区图像指针
get_image_pointer1 (Image, Pointer, Type, Width, Height)
*聚焦到窗体2
dev_set_window (Window2)
*关闭窗体
dev_close_window ()
*聚焦窗体1
dev_set_window (Window1)
*清楚窗体
dev_clear_window ()
ScaleImage := 0.4
*放大窗体
dev_set_window_extents (-1, -1, Width * ScaleImage, Height * ScaleImage)
dev_display (Image)
*显示信息
disp_message (Window1, 'Images rectified relative to the dominant plane', 'window', 12, 12, 'black', 'true')
* The difference between corresponding points, also called parallax, is reciprocal to the 3D distance
* from the space point the reference plane.
* 利用关联技术来计算矫正图像对之间的差别
binocular_disparity (Image1, Image2, Disparity, Score, 'ncc', 15, 15, 5, -5, 5, 1, 0.8, 'left_right_check', 'interpolation')
  *右下角显示 'Press Run (F5) to continue' 这个信息
disp_continue_message (Window1, 'black', 'true')
stop ()
dev_clear_window ()
dev_display (Disparity)
disp_message (Window1, 'Disparity map', 'window', 12, 12, 'black', 'true')
*
disp_continue_message (Window1, 'black', 'true')
stop ()
*清楚窗体
dev_clear_window ()
*阈值分割
threshold (Disparity, Region, 0.5, 3)
*生成一个圆
gen_circle (StructElem, 10, 10, 3)
*开运算:开运算的目的是先腐蚀后膨胀;目的是把细微连在一起的两块目标分开了,而闭运算则相反
opening (Region, StructElem, Region)
*设置显示颜色
dev_set_color ('slate blue')
*吓死你好i图像
dev_display (Image1)
*显示区域
dev_display (Region)
*显示信息
disp_message (Window1, 'Segmentation of components with large height', 'window', 12, 12, 'black', 'true')

Blob分析之Board_Segmentation_Uncalib的更多相关文章

  1. 常用机器视觉工具----图像分析工具(blob分析)

    http://blog.sina.com.cn/s/blog_67cc4eb70100ivnt.html Blob分析:Blob分析目的在于对图像中的2-D形状进行检测和分析,得到诸如目标位置.形状. ...

  2. opencv 在工业中的应用:blob分析

    在工业中经常要检测一副图像中物体的数量,位置,大小,面积等信息,这就要用到BLOB分析,我用OPENCV做了个BLOB分析的DEMO. (1)打开一幅图像 (2)进行参数设置,设定二值化阙值,并选择是 ...

  3. Blob分析--粘连颗粒检测 基于距离变换的分水岭区域分割 盆地与原连通域求交集

    文章转自微信公众号:机器视觉那些事 *******************************************************************公众号:机器视觉那些事儿*** ...

  4. Halcon 笔记2 Blob分析

    1. 数组操作 2. 可视化-更新窗口 (1)单步模式-总是:则可以自动显示图像: (2)单步模式-从不:需要调用显示函数才能显示图像. (3)单步模式-清空显示:将原图清除,再显示新图 3. 图像处 ...

  5. Halcon blob分析基本处理步骤

    Halcon,blob分析 应用场景,二值化后的灰度图像对比度清晰 基本处理流程 1 读取图片 read_image(变量名,'路径') //halcon字符串使用单引号'' 2 预处理 2.1 RO ...

  6. Caffe学习--Blob分析

    Caffe_blob 1.基本数据结构 Blob为模板类,可以理解为四维数组,n * c * h * w的结构,Layer内为blob输入data和diff,Layer间的blob为学习的参数.内部封 ...

  7. Blob分析之bottle.hdev

    * 分割读取啤酒瓶子上的数字* bottle.hdev: Segment and read numbers on a beer bottle* 第0步* Step 0: Preparations*定义 ...

  8. Blob分析之board _components.hdev

    *用立体方法分割板子组件的示例程序*Application program to illustrate the segmentation* of board _components.hdev  wit ...

  9. Blob分析之board.hdev

    * board.hdev: Detection of missing solder* 获取当前系统参数get_system ('clip_region', Information)*设置当前系统参数s ...

随机推荐

  1. P3008 [USACO11JAN]Roads and Planes G 拓扑排序+Dij

    题目描述 Farmer John正在一个新的销售区域对他的牛奶销售方案进行调查.他想把牛奶送到T个城镇 (1 <= T <= 25,000),编号为1T.这些城镇之间通过R条道路 (1 & ...

  2. Python——操作smb文件服务器(上传和下载)

    最近在做上传和下载,然后文件比较大和多,就用到了文件服务器,文件服务器是实体机 ,不是在本地, 然后用python 通过pysmb模块就可以直接进行操作 mac选择前往.连接服务器去查看文件服务器里都 ...

  3. SQLAlchemy01 /SQLAlchemy去连接数据库、ORM介绍、将ORM模型映射到数据库中

    SQLAlchemy01 /SQLAlchemy去连接数据库.ORM介绍.将ORM模型映射到数据库中 目录 SQLAlchemy01 /SQLAlchemy去连接数据库.ORM介绍.将ORM模型映射到 ...

  4. HotSpot VM运行时

    HotSpot VM运行时系统为HotSpot JIT编译器和垃圾收集器提供服务和通用API,同时还为VM提供启动.线程管理.JNI(Java本地接口)等基本功能.HotSpot VM运行时环境担当许 ...

  5. 网易实战分享|云信IM SDK接口设计实践

    引语 IM (Instant Messaging)是网络上最流行的通信方式,与日常生活息息相关.IM软件也层出不穷,例如:微信.QQ.易信等.通过多年深耕和技术沉淀,云信产出了一套成熟稳定的IM SD ...

  6. golang第一天--安装

    先上吉祥物 安装 下载链接:https://studygolang.com/dl 下载好之后开始安装 next.next.next,选择好目录.next.等待.finish. 成了!! 配置环境变量: ...

  7. linux 安装 mysql8

    1. 下载地址: https://dev.mysql.com/downloads/file/?id=484922 2. 安装 mysql80-community-release-el7-3.noarc ...

  8. JavaScript动画实例:沿五角星形线摆动的小圆

    五角星形线的笛卡尔坐标方程式可设为: r=10+(3*sin(θ*2.5))^2  x=r*cos(θ) y=r*sin(θ)              (0≤θ≤2π) 根据这个曲线方程,在[0,2 ...

  9. 图片懒加载、ajax异步调用数据、lazyload插件的使用

    关于这个效果还是很简单的,样式部分我就不多说了,我就简单的写了一下布局, 这是css样式 我们先说一下实现的原理. 我们都知道在于图片的引入,我们都是用src来引入图片地址.从而实现图片的显示.那我们 ...

  10. Markdown画图(mermaid)学习

    简介 目前博客园支持mermaid的graph,subgraph,sequenceDiagram,gantt,classDiagram mermaid(美人鱼), 是一个类似markdown,用文本语 ...