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 ...
随机推荐
- (四)ELK Logstash filter
filter 官方详解 https://www.elastic.co/guide/en/logstash/current/filter-plugins.html apache 日志实例: in ...
- The Meaningless Game,算是思维吧。
题目直接链接 题意: 某游戏规则:每次选定数字k(正整数),两人初始分数为1,获胜者分数乘k2,失败者分数成k,给你两个数字,判断是否可能是本游戏的两人的得分. 分析: 为啥题意我不写判断两个数可不可 ...
- Ticket Game CodeForces - 1215D 博弈题
题目描述 Monocarp and Bicarp live in Berland, where every bus ticket consists of n digits (n is an even ...
- Git篇--将代码上传到git完整版
1.注册github账号. 2.创建个人的github仓库,如图, 或者也可以进入个人中心去创建, 还可以直接点击右上角的“”+“”添加, 3.创建自己的Repository,如图: 4.新建 ...
- 内存节省到极致!!!Redis中的压缩表,值得了解...
redis源码分析系列文章 [Redis源码系列]在Liunx安装和常见API 为什么要从Redis源码分析 String底层实现——动态字符串SDS 双向链表都不懂,还说懂Redis? 面试官:说说 ...
- 协同合约HACKATHON 0X03;
协同合约HACKATHON 0X03; 使用Fetch.AI技术开发一个共享行程协同合约.超过100,000个FET代币奖励. 介 绍 拼车是对你的钱包和环境都非常有益的,因此UberPool™等共享 ...
- 【题解】p1809 过河问题
原题传送门 题目分析 现有n个人在东岸,要过河去西岸.开始东岸有一艘船,船最多可承载2人,过河时间以耗时最长的人所需时间为准. 给定n个人的过河时间a,求所有人从东岸到西岸所需的最短时间. 当\(n= ...
- vue-cli3安装
1.如果原来安装过vue-cli,需要先卸载,命令:npm uninstall vue-cli -g :这步如果出现问题,可能是npm 的全局路径被更改, 运行如下命令:npm config set ...
- input type=file过滤图片
<input type="file" accept=".png,.jpg,.jpeg,image/png,image/jpg,image/jpeg"> ...
- Mysql 实例:mysql语句练习50题(普通sql写法)
为了练习sql语句,在网上找了一些题,自己做了一遍,收益颇多.很多地方换一种思路,有更好的写法,欢迎指正. 题目地址:https://blog.csdn.net/fashion2014/article ...