图像图形
weixin_39926429
这个作者很懒,什么都没留下…
展开
-
谈谈FFT到底有何用
谈谈FFT到底有何用FFT快速傅里叶变换是数字信号处理的经典算法,学过DSP或者芯片设计的人大多知道这个算法;但是,大家是否想过,为什么数字信号处理会有那么多FFT呢有人会说,为了分析信号的频谱;那么下边的问题就是,分析频谱对我们的日常需求,比如手机打电话,雷达测量速度和方向等等一些与实际需求有什么联系为什么FFT如此重要本文举一些简明的例子,阐释一下FFT到底有什么用;先回忆一下FFT是什么;上世纪70年代之前,我们主要通过模拟电路来进行信号处理,比如大家熟悉的用二极管和电容进行AM调制信号的包络检波一样原创 2023-08-02 11:25:10 · 825 阅读 · 0 评论 -
工业机器视觉 库与相机
1.1.2 VisionMaster(海康)1.1.1SCISmart(奥普特)2.2.1 Basler 宝视纳。2.2.2 DALSA 达尔萨。2.2.6 Baumer 宝盟。2.2.3 FLTR 菲力尔。2.3.4 AVT 艾威特。2.2.5 E2V 特利丹。原创 2023-06-12 15:54:26 · 1278 阅读 · 0 评论 -
机器视觉值-视觉追踪
视觉追踪是指通过计算机视觉技术,对目标物体在三维空间中的运动轨迹进行跟踪和预测。视觉追踪技术广泛应用于机器人、自动化生产线原创 2023-06-08 08:36:37 · 519 阅读 · 0 评论 -
NI vison 的核心功能
NI vison 的核心功能图像采集和预处理、特征提取和匹配、目标检测和跟踪、图像分割和分析、三维视觉、机器学习等。原创 2023-06-05 08:37:25 · 674 阅读 · 0 评论 -
halcon的核心功能
Halcon是一款功能强大的机器视觉软件,其核心功能包括图像处理、特征提取与匹配、3D视觉、深度学习、条码识别、OCR 视觉测量。原创 2023-06-05 08:17:34 · 489 阅读 · 0 评论 -
机器视觉的工业应用
给学机器视觉的看看,别一天只敲代码,看看应用场景。转载 2022-12-05 00:26:23 · 95 阅读 · 0 评论 -
halcon常用仿射变换算子
halcon常用仿射变换算子_Strauss Lupusson的博客-CSDN博客_halcon仿射变换算子仿射变换主要包括平移变换、旋转变换、缩放变换(也叫尺度变换)、倾斜变换(也叫错切变换、剪切变换、偏移变换)、翻转变换。有六个自由度。要进行仿射变换,必须先获取变换矩阵。要获取变换矩阵,必须先获取特征点坐标、角度等信息,几何匹配和bolb是获取特征点的高效方法,除此之外还有其它方法,只要能稳定的求出特征点即可。(1.)获取特征点坐标、角度(2.)计算仿射变换矩阵(3.)对图像、区域、轮廓进行仿射变换ho转载 2022-06-25 11:30:06 · 896 阅读 · 0 评论 -
halcon 区域的仿射变换
*区域的仿射变换*affine_trans_region函数不能独自操作,需要为其提供交换所需的交换模型,*这些变换模型可以了解halcon所对应的变换操作,如旋转、比例缩放、拉伸等操作,*具体可以参见下面的交换流程,这些二维变换操作能够帮忙我们是想区域的任意变换操作 *-hom_mat2d_rotate(旋转) *-hom_mat2d_scale (缩放)*hom_mat2d_identity--->-原创 2022-06-20 09:38:01 · 805 阅读 · 0 评论 -
MFC 读取位图到数组 setPixel按像素显示
//本文演示MFC读取位图文件(按字节解析)到数组,然后用setPixel方法逐个显示像素。//基于对话框,在对话框里放置Picture control(图形控件)和1个按钮。//说明:图片过大,可能无法显示。// const int height=9000; const int width=6000;//输入参数:图像文件名FileName//输出参数:图像像素R,G,B三个分量im[][][]//im[0]存放R分量,im[1]存放G分量,im[2]存放B分量bool ReadBmpImage(CS原创 2022-06-13 22:17:41 · 707 阅读 · 0 评论 -
c/c++ 图片内存的分配,赋值,检验赋值
#include #include void *pImgDestBuffer;//图片分配内存首地址 int length=3*10000*10000;//预设图片所占内存的大小, //假设图片w=10000,H=10000,R,G,B三色各占一个字节 //int的范围为-2147483648 ~ 2147483647,length不会溢出int _tmain(int argclength, _TCHAR* argv[]){ pImgDestBuff............原创 2022-06-06 11:03:03 · 287 阅读 · 0 评论 -
halcon 将极坐标转换为直角坐标 polar_trans_region
将环形区域转换为矩形区域原创 2022-06-01 23:05:17 · 543 阅读 · 0 评论 -
halcon 区域的倒置操作 (transpose_region)
*transpose_region算子为我们提供了区域的180度旋转操作*需要指定坐标来进行操作,系统以指定的坐标做为45度的旋转中心*进行45度的倒置操作,使得区域按照旋转轴得参考位置旋转到指定处dev_close_window ()dev_open_window (0, 0, 512, 512, 'white', WindowID)dev_set_color ('black')* 用鼠标左键画一个区域,右键确认draw_region (Region, WindowID)*原型是tra原创 2022-05-30 00:38:11 · 660 阅读 · 0 评论 -
halon 区域的几何变换 镜像 mirror_region
*mirror_region算子对区域进行镜像*有三种方式:基于行,基于列,基于45度直线*这三种方式由算子的第三个参数指定rows1:=[100,100,170,170,100]cols1:=[100,170,140,70,100]*根据坐标生成区域gen_region_polygon(Region1,rows1,cols1)mirror_region(Region1,RegionMirror1, 'row',512)*已知区域,求区域的顶点,第二个参数为允许误差get_reg原创 2022-05-28 22:54:38 · 934 阅读 · 0 评论 -
halcon 区域的几何变换 平移和缩放 move_region zoom_region
gen_rectangle1 (Rectangle1,50,50,100,100)move_region(Rectangle1, RegionMoved, 50,50)dev_clear_window()dev_display(RegionMoved)*区域缩放是以原点为缩放的基点zoom_region(RegionMoved, RegionZoom, 3, 3)dev_display(RegionZoom)原创 2022-05-28 21:24:18 · 2350 阅读 · 0 评论 -
vc halcon 联合编程的配置 ReadImage demo
项目建立完成后1.项目->属性->c/c++->常规->库目录 ,添加: $(HALCONROOT)\include;$(HALCONROOT)\include\halconcpp2.项目->属性->VC++目录->库目录,添加如下:$(HALCONROOT)\lib\$(HALCONARCH)3.项目->属性->链接器->输入->附件依赖项,添加如下:halconcpp.lib4.新建头文件,名字自己起,#include"h.原创 2022-05-28 15:57:45 · 164 阅读 · 0 评论 -
halcon 区域 通过给定形状找出区域 select_shape_std
*select_shape_std和select_shape的最大区别*select_shape_std提供单一的查找区域read_image (Image, 'punched_holes')dev_set_color('white')//设置颜色为白色dev_set_draw('margin')//设置填充为轮廓regiongrowing(Image,Regions,1,1,3,400)//利用区域增长分割图像,regions=33个区域dev_set_color('red')//设置颜色原创 2022-05-26 02:01:44 · 1544 阅读 · 1 评论 -
halcon 区域 选择有某种关系的区域 select_shape_proto
*select_shape_proto算子实现对比两个区域的差异性*distance_center',两个区域的中心距离*distance_contour',两个区域的外部轮廓距离*’covers‘:两个区域包含的部分*overlaps_abs':两个区域重叠的部分read_image (Image, 'fabrik')dev_close_window ()dev_open_window (0, 0, 512, 512, 'black', WindowID)dev_set_co原创 2022-05-26 01:08:20 · 593 阅读 · 0 评论 -
halcon 区域 inner_rectangle1 smallest_rectangle1 smallest_rectangle2
*如果需要根据方位调整角度,则需要使用smallest_rectangle2read_image(Image,'pellets')dev_set_color('white')//设置颜色为白色dev_set_draw('fill')//设置填充为满regiongrowing(Image,Regions0,1,1,3,500)//利用区域生长分割图像,Regons==33个区域*threshold(Image,Regions, 128, 255)*connection(Regions,Regio.原创 2022-05-26 00:28:54 · 2369 阅读 · 0 评论 -
halcon 区域 inner_circle smallest_circle
*将condition设为1和非1运行效果对比read_image(Image,'rings_and_nuts')dev_set_colored(6)condition:=1 //将condition值设为非1时可看到另外效果if (condition=1)dev_set_draw ('fill')endifthreshold(Image,Regions,0,100)connection(Regions,ConnectedRegions)select_shape(ConnectedReg.原创 2022-05-25 00:48:10 · 1701 阅读 · 0 评论 -
halcon 轮廓的形状系数例子 roundness
*roundness比较复杂,本文先看例子,下篇详细介绍算子*Distance:输出区域轮廓和该区域面积中心的平均距离read_image (Image,'rings/mixed_01')binary_threshold (Image, Region, 'max_separability', 'dark', UsedThreshold)connection (Region, ConnectedRegions)*fill_up (ConnectedRegions, Regions)dev_cle原创 2022-05-23 23:34:36 · 791 阅读 · 0 评论 -
halcon PCB板例子 矩形相似系数 rectangularity
read_image(Image,'pcb')threshold(Image,Region,0,100)//利用全局阈值分割图像erosion_circle(Region,RegionErosion,11.5)//用圆型结构腐蚀区域connection(RegionErosion,ConnectedRegions)dilation_circle(ConnectedRegions, RegionDilation, 11.5)////用圆型结构膨胀区域dev_display(Image)dev_di原创 2022-05-22 00:15:54 · 237 阅读 · 0 评论 -
halcon 矩形相似度 rectangularity
dev_clear_window()gen_rectangle2 (Rectangle1, 300, 200, 0.1745, 100, 20)rectangularity(Rectangle1,Rectangularity)gen_circle(Circle,100,100,30)gen_ellipse(Ellipse,200,200,0,50,30)rectangularity(Circle,Rectangularity2)rectangularity(Ellipse,Rectangulari..原创 2022-05-21 22:29:02 · 972 阅读 · 0 评论 -
halcon 与圆接近的区域例子 circularity
*满足接近圆的公式 c=区域面积/(区域内最大直线距离的平方*pi)*如果是一个纯正的圆,c=1*如果区域内有空洞,则c<1*越接近1,则越接近圆read_image(Image,'tooth_rim')regiongrowing (Image,Regions,1,1,3,100)count_obj(Regions,Number)//共27个for i:=1 to Number by 1 dev_set_color('white') select_obj(Regi...原创 2022-05-21 21:54:54 · 302 阅读 · 0 评论 -
halcon 提取区域的相似系数
*我们常常希望从多个区域中寻找我们要要的区域,并把这些区域的特征提取出来*halcon提供了标准几何区域的查找。*circularity 提取一个区域于与圆的相似度的形状系数*eccentricity 椭圆系数*elliptic_axis 提取一个区域椭圆或矩形的长轴短轴及方位*tectangularity 提取一个区域对应矩形(长方形)相似程度的形状系数*roundness 提取一个区域轮廓的形状系数...原创 2022-05-21 21:32:48 · 641 阅读 · 0 评论 -
c/c++ 二值图像 边界提取
//二值图像的边界提取可以采用四领域或八领域方法://当前像素值为1,且周围四个(或8个)像素的值都为1,则此行列对应的结果图像的的像素为0//否则保持不变//本代码在vs2019调试通光。#include <iostream>using namespace std;typedef unsigned char Byte;void Edge4(Byte f[6][6], int h, int w, Byte mb, Byte g[6][6]){ for (in...原创 2022-05-20 23:54:38 · 870 阅读 · 0 评论 -
halcon 区域的密度 compactness
*halcon 里的密度这个概念是采用圆做为基础来计算的,*密度的公式C=周长的平方/(4*面积*3.14)*圆的密度始终是1*正方形的密度为1.273*如果是1*2的长方形,则密度为36/(4*2*3.14)=1.432read_image (Image, 'fabrik')dev_close_window ()dev_open_window (0, 0, 512, 512, 'black', WindowID)dev_set_color ('white')* 利用区域增长分割图原创 2022-05-15 01:08:20 · 834 阅读 · 0 评论 -
halcon 区域的岛屿和孔洞数量 connect_and_holes
*根据对应灰度或者边缘而分割的区域,可能包含了多个空洞或者孤岛,在一些情况下,我们需要获取这些空洞或孤岛的数量*(所谓孤岛是其边缘不和其它相连)*connect_and_holes能够帮助我们获取这些空洞或孤岛的数量read_image (Image, 'monkey')dev_set_color ('red')threshold (Image, Region, 128, 255)dev_clear_window()dev_display(Region)*原型是connect_and原创 2022-05-14 23:31:07 · 881 阅读 · 0 评论 -
halcon 区域的最大直线距离 diameter_region
*一个区域有一个最大的直线距离*圆的最大直线距离是直接*矩形的最大直线距离是对角线*椭圆的最大直线距离是它的长轴*不规则的区域,也可得到最大直线距离*从而也能够获得最大外切圆read_image(Image,'keypad')rgb1_to_gray(Image,GrayImage)regiongrowing(GrayImage,Regions1,20,20,10,8000)select_obj(Regions1,ObjectSelected1, 1)diameter_region(Obj原创 2022-05-14 00:46:53 · 724 阅读 · 0 评论 -
halcon 提取区域索引值 get_region_index
read_image(Image,'fabrik')dev_set_color('white')dev_set_draw('fill')*利用区域增长分割图像regiongrowing(Image,Regions,1,1,3,400)dev_set_color('red')dev_get_window(WindowHandle)while(1) *用鼠标获取对应区域所在的位置 get_mbutton(WindowHandle,Row,Column,Button) *获取...原创 2022-05-14 00:26:50 · 1429 阅读 · 0 评论 -
halcon 区域方位 orientation_region
*即使是非标准条状物体,halcon 也能提供准确的read_image(Image,'clip')threshold(Image,Region,0,80)connection(Region,ConnectedRegions)select_shape(ConnectedRegions,SelectedRegions1,'area','and',5000,99999)*得到区域的角度(-pi <= Phi && Phi < pi)orientation_region(原创 2022-05-14 00:49:29 · 778 阅读 · 0 评论 -
halcon 区域周长 contlength
*区域的周长是它的外围尺寸,岛屿及空洞对它的周长不影响dev_set_draw('margin')gen_rectangle1(Rectangle1,100,100,250,250)contlength(Rectangle1,ContLength1)gen_rectangle1(Rectangle2,50,50,350,350)contlength(Rectangle2,ContLength2)*两个区域相减difference(Rectangle2,Rectangle1,RegionDiffe原创 2022-05-13 23:26:04 · 889 阅读 · 0 评论 -
halcon 区域特征 面积(area)
*图片为halcon自带图片read_image(Image,'coins/20cent_01.png')rgb1_to_gray (Image,GrayImage)threshold(GrayImage,Regons,65,255)connection(Regons,ConnectedRegions)fill_up(ConnectedRegions,RegionFillUp)dev_display(GrayImage)dev_set_draw('margin')dev_set_line_原创 2022-05-13 02:22:03 · 532 阅读 · 0 评论 -
halcon 区域的基本特征
*区域主要特征列表*area 提取一个区域的面积(大小)和中心*area_holes 提取一个区域孔洞(封闭的裂缝)的面积*contlength 提取一个区域轮廓的周长*orientation_region 提取一个区域的方位*get_region_index 查找指定位置所在区域的索引值*diameter_region ...原创 2022-05-13 01:27:19 · 1234 阅读 · 0 评论 -
halcon 区域特征的值提取及过滤
*前面我们多次用到了区域,也采用二值化分分割的方式提取过区域*区域一定式一个封闭的,既有一定面积和周长的封闭物体(点和线也可设定为区域)*区域它具有各种属性,我们可以按如下菜单打开:可视化->工具->特征检测*也可通光工具栏点红色标识打开:*也可按ctrl+shift+o,然后按ctrl+shift+I打开特征值对话框*如果图像窗口有对应的区域,我们可通光鼠标勾选对应的区域,特征检测栏能显示对应的属性值*这些属性值(特征的值)能够帮我们直观的获取对应区原创 2022-05-13 00:15:03 · 844 阅读 · 0 评论 -
halcon 二值图像处理 区域的细化 skeleton
*通常字符的绝大部分信息集中在字符的骨架上,*对二值化目标图像进行细化处理后得到目标字符的细线化图像,*即线宽为单像素的"骨架",能够较容易地提取图像的特征。*细化算法广泛应用于图像分析、信息压缩、特征提取及模式识别等。*细化算法能将用于道路识别,测量道路的长度以及实现网络智能辨别。read_image(Image,'fingerprint')rgb1_to_gray(Image,GrayImage)threshold(GrayImage,Region,0,128)*计算一个区域的原创 2022-05-10 23:50:56 · 2005 阅读 · 0 评论 -
halcon 二值形态学 计算小颗粒数目例子
*本程序来自halcon例程,但将不重要的行删除或注释,凸显二值形态学算子。*本程序演示基本的形体学操作。*本程序的目标市检测每一个(在暗背景上的明亮)小颗粒* 图片->二值化->开运算->腐蚀->膨胀dev_update_off ()read_image (Image, 'pellets')*从背景分割所有小颗粒的区域binary_threshold (Image, LightRegion, 'max_separability', 'light', UsedThre原创 2022-05-08 21:03:01 · 735 阅读 · 0 评论 -
二值图像处理 开运算和闭运算
前面描述了是二值形态学中最重要的运算:腐蚀与膨胀。将腐蚀与膨胀级联结合使用,构造出形态学的运算族:开运算与闭运算。一、开运算1.开运算的定义先对图像进行腐蚀,然后再膨胀其结果,称为开运算。X○S=(X⊝S)⊕S2.开运算总结:(1)开运算能够除去孤立的小点、毛刺和小桥,而总的位置和形状不便。(2)开运算是一个基于几何运算的滤波器。(3)结构元素大小的不同将导致滤波效果的不同。(4)不同的结构元素的选择导致了不同的分割,即提取出不同的特征。二、闭运算1.闭运算...原创 2022-05-08 19:51:20 · 2071 阅读 · 0 评论 -
二值图像处理 膨胀
前一篇文章,介绍了腐蚀,本篇文章描述膨胀。膨胀与腐蚀是相反的操作,但不互为逆运算。1.膨胀的定义把结构元素S平移(x,y)后得到Sxy,若Sxy与X相交不为空。(也就是(S)xy中为1的元素位置上对应的X图像值至少有1个元素)记下这个(x,y)点,所有满足上述条件的点组成的集合称做X被S膨胀的结果,可以下式表示X⊕S ={(x,y)|Sxy ∩ X ≠Ø }2.膨胀的方法:将S的原点和X上的点一个一个地对比,如果S上有一个点落在X的范围内,(如用黑色表示),则S的原点对应的点保留原创 2022-04-18 23:36:55 · 3041 阅读 · 0 评论 -
二值图像处理 腐蚀
腐蚀与膨胀是二值形态学中最重要的运算。设有两幅图像,X和S,若 X是被处理的对象(目标图像),而S 是用来处理X的,则称S为结构元素。又被形象的称为刷子。在目标图像中可以移动结构元素,以考察目标图像与结构元素之家的关系。一般情况下,结构元素的尺寸要明显小于目标图像的尺寸。1.腐蚀的定义把结构元素S平移(x,y)后得到Sxy,若Sxy,包含于X(也就是(S)xy中为1的元素位置上对应的X图像值全部为1)记下这个(x,y)点,所有满足上述条件的点组成的集合称做X被S腐蚀的结果,可以下原创 2022-04-14 00:41:04 · 4225 阅读 · 0 评论 -
数字图像处理 区域形态学
转载:数字图像处理-形态学转载 2022-03-19 08:50:23 · 84 阅读 · 0 评论