Blob分析之Board_Segmentation_Uncalib
* **************************************************************************************************
* 电路板投影矫正
*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的更多相关文章
- 常用机器视觉工具----图像分析工具(blob分析)
http://blog.sina.com.cn/s/blog_67cc4eb70100ivnt.html Blob分析:Blob分析目的在于对图像中的2-D形状进行检测和分析,得到诸如目标位置.形状. ...
- opencv 在工业中的应用:blob分析
在工业中经常要检测一副图像中物体的数量,位置,大小,面积等信息,这就要用到BLOB分析,我用OPENCV做了个BLOB分析的DEMO. (1)打开一幅图像 (2)进行参数设置,设定二值化阙值,并选择是 ...
- Blob分析--粘连颗粒检测 基于距离变换的分水岭区域分割 盆地与原连通域求交集
文章转自微信公众号:机器视觉那些事 *******************************************************************公众号:机器视觉那些事儿*** ...
- Halcon 笔记2 Blob分析
1. 数组操作 2. 可视化-更新窗口 (1)单步模式-总是:则可以自动显示图像: (2)单步模式-从不:需要调用显示函数才能显示图像. (3)单步模式-清空显示:将原图清除,再显示新图 3. 图像处 ...
- Halcon blob分析基本处理步骤
Halcon,blob分析 应用场景,二值化后的灰度图像对比度清晰 基本处理流程 1 读取图片 read_image(变量名,'路径') //halcon字符串使用单引号'' 2 预处理 2.1 RO ...
- Caffe学习--Blob分析
Caffe_blob 1.基本数据结构 Blob为模板类,可以理解为四维数组,n * c * h * w的结构,Layer内为blob输入data和diff,Layer间的blob为学习的参数.内部封 ...
- Blob分析之bottle.hdev
* 分割读取啤酒瓶子上的数字* bottle.hdev: Segment and read numbers on a beer bottle* 第0步* Step 0: Preparations*定义 ...
- Blob分析之board _components.hdev
*用立体方法分割板子组件的示例程序*Application program to illustrate the segmentation* of board _components.hdev wit ...
- Blob分析之board.hdev
* board.hdev: Detection of missing solder* 获取当前系统参数get_system ('clip_region', Information)*设置当前系统参数s ...
随机推荐
- js实现json格式化,以及json校验工具的简单实现
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, ...
- 使用centos8搭建僵尸毁灭工程(PZ)服务器
自从领到了阿里云的ECS服务器后,本着既能熟悉linux操作,又能为喜欢的游戏搭建一个可以和朋友一起联机的服务器(游戏提供自建本地服务器极渣)的想法.作为linux小白的我翻遍了网上的资料,用了五天终 ...
- CF819B Mister B and PR Shifts 思维题
分析 这道题\(n\leq10^{6}\),显然\(n^{2}\)的暴力是无法解决问题的 那么我们可以考虑数列的某一种性质 因为最终的答案是\(\sum{n \atop i=1} |p_i - i|\ ...
- Mister B and PR Shifts,题解
题目链接 分析: 题意很明白,不再多说了,直接分析题目,首先想一想暴力,直接枚举起点,然后求出来,时间复杂度n*n,显然不太好,所以我们考虑换一种方法枚举,当然本质还是枚举,其实你会发现变化i次和i+ ...
- 深入Mybatis源码——配置解析
@ 目录 前言 正文 配置解析 1. cacheRefElement/cacheElement 2. resultMapElements 3. sqlElement 4. buildStatement ...
- es6 模块与commonJS的区别
在刚接触模块化开发的阶段,我总是容易将export.import.require等语法给弄混,今天索性记个笔记,将ES6 模块知识点理清楚 未接触ES6 模块时,模块开发方案常见的有CommonJS. ...
- React当中的路由使用
React 当中的路由 使用React构建的单页面应用,要想实现页面间的跳转,首先想到的就是使用路由.在React中,常用的有两个包可以实现这个需求,那就是react-router和react-rou ...
- 006.Nginx访问控制
一 Nginx连接限制 1.1 HTTP协议的连接与请求 HTTP是建立在TCP, 一次HTTP请求需要先建立TCP三次握手(称为TCP连接),在连接的基础上再进行HTTP请求. HTTP请求建立在一 ...
- Bootstrap 搭建基础页面
基于Bootstrap实现下图所示效果的页面,一个居中的标题和一个大按钮: <!DOCTYPE html> <html lang="zh-cn"> < ...
- Maven 专题(七):常用命令
mvn archetype:generate : 反向生成项目的骨架 mvn clean: 清除各个模块target目录及里面的内容 mvn compile: 静态编译,根据xx.java生成xx.c ...