图像处理
文章平均质量分 61
Isaac320
徒步登顶过海拔5025m雪山的男人!
工作在苏州,有图像算法方面的问题,请私信我,共同学习进步!
个人网站:http://www.isaac320.com/
展开
-
Halcon中的一些3D算子
SampleDistance:这个采样距离,隔多少距离采集一个点,可以先求出3d模型的最大直径乘以一个比例系数来得到这个采样距离,如Diameter*0.003 最大直径的0.003倍,及最大直径上取333个采样点,乘的系数越小,点越多。这样上面find的姿态,是预先做的模型通过变换匹配到场景中的位置,反转这个姿态,可以将场景变换回模型的位置,用于后期分析处理。在3d点云匹配创建3d匹配模型的时候,需要模型带表面法线信息才可以用来创建。3、4、5的操作可以用来去除噪点,如下图,去除噪点之后的3d模型。原创 2023-05-29 16:30:10 · 5945 阅读 · 0 评论 -
C++实现二维快速傅里叶变换(FFT)
上一篇文章里,我根据DFT公式用C++实现了二维离散傅里叶变换。但跑一张300*300的图片都要好几分钟,速度实在太慢了。我研究了下快速傅里叶变换,在网上找了一些资料,然后用C++实现了二维快速傅里叶变换,速度超级快,512*512的图片在0.1秒内就能处理完。我们知道一维离散傅里叶变换公式如下其中。用矩阵表示即为:...原创 2021-12-31 16:36:43 · 10754 阅读 · 6 评论 -
C++实现二维离散傅里叶变换(DFT)
根据二维离散傅里叶变换公式(DFT),可以将图片从空间域转换到频率域内,对其进行一些处理,再通过离散傅里叶反变换(IDFT),转换回原空间域,达到一些特殊处理效果。处理如下原图经过二维离散傅里叶变换(DFT),得到下图再经过反变换,得到下图这边我用C++重新实现下这个DFT和IDFT这两个算法。根据定义照着着两个公式编写程序即可,注意的是,e可用下面公式展开由于安照此方式编写的程序套了4层循环,运行过于缓慢,我对原图进行了缩放,之前62...原创 2021-12-22 15:01:52 · 4016 阅读 · 3 评论 -
C++实现sobel算子
上一篇自动对焦里文章里用的评价函数,有用到opencv里的sobel算子。我这边用C++实现下opencv里的这个算子sobel算子的两个内核分别是{-1,0,1;-2,0,2;-1,0,1} {-1,-2,-1;0,0,0;1,2,1}先实现下opencv里图像彩色转灰色的算子Mat BGR2GRAY(Mat img){ int width = img.cols; int height = img.rows; Mat grayImg(height, width, ...原创 2021-12-16 15:57:58 · 4334 阅读 · 0 评论 -
自动对焦算法(OpenCV实现)
自动对焦算法,opencv实现原创 2021-12-13 16:38:13 · 16725 阅读 · 0 评论 -
C#调用C++ dll
记录下C++#include "pch.h"#include<math.h>extern"C" __declspec(dllexport)int Add(int x,int y){ return x+y;}extern"C" __declspec(dllexport)void Pow(int*x, double y){ *x = pow(*x, y);}原创 2021-06-08 17:22:09 · 3339 阅读 · 7 评论 -
C++ C# python下的中值滤波
C++ 中值滤波#include <iostream>#include <opencv2/core.hpp>#include <opencv2/highgui.hpp>#include <math.h>#include <time.h>using namespace cv;Mat Median_filter(Mat img, int kernel_size) { int height = img.rows; int wid原创 2020-08-20 11:05:33 · 471 阅读 · 0 评论 -
Halcon中的3D技术
对于检测一些产品的3d信息,我们通过3d相机能获取其点云数据或一张带有高度信息的图像。这边我们用SmartRay相机,获取到一张16位的png图像。实际上就是一张高度信息图。这边X、Y缩放比例为0.019,Z方向为0.0016,意思就是你xyz乘这系数就是相对距离。在那个相机软件中能看到如上的3d图。我们获取到的是一张16位的PNG图,如下Halcon中建立一个3d模型...原创 2019-07-04 10:34:12 · 17718 阅读 · 10 评论 -
双目视觉的标定及使用
一些视觉项目中会用到双目视觉,双目视觉可以判别出物体所在的空间位置,有很多应用场景。 双目视觉,即两个相机在两边看同一个视野,然后获取目标物的空间位置X,Y,Z。 架设图就不画了,差不多就那样。下面介绍下标定方法。提下:双目视觉标定:就是获取左右两个相机的内参和右相机相对与左相机的Pose。 这边使用的是一块30mm的标定板来坐双...原创 2019-06-27 15:37:30 · 3352 阅读 · 0 评论 -
双相机融合标定
在机器视觉测量项目中,对一些长条形的产品测量可能单个相机视野不够,需要两个或两个以上相机做拼接。但相机安装的空间位置不同,需要对两个相机作融合标定。 首先:将两个相机架设好后,分别标定好两个相机内参。 这里两个相机分辨率为640*480,镜头16mm的。 用30mm标定板标定了内参。(内参标定方法这里就不介绍了)。两相机内参分别为:...原创 2019-06-26 14:26:21 · 12897 阅读 · 17 评论 -
六轴机械手与相机的手眼标定
利用相机视觉定位,并用机械手抓取。 一、相机固定的情况 我们需要的最终结果,即 得到base 与 cam 的空间位置关系,即一个4*4的变换矩阵。这个可以通过移动tool,多次拍摄标定板来计算得到。 矩阵关系: 通过多次拍摄标定板,可得到每次标定板在相机坐标系中的位置关系,即 cam_H_cal。 ...原创 2018-04-25 14:44:53 · 13003 阅读 · 1 评论 -
Halcon 消除图像上的干扰波纹
上图在垂直方向上存在一定频率的干扰波纹。可将图像转到频域内处理掉这种波纹。FFT后:滤波器:处理后的频域图像:逆变换:消除了垂直方向上的干扰。get_image_size (Image1, Width1, Height1)gen_rectangle1 (Rectangle1, 0, Width1/2-2, Height1/2-10, Width1/2+2)gen_rectangle1 (Rec...原创 2018-03-02 10:35:24 · 12041 阅读 · 2 评论 -
图像细化原理
数字图像处理书上图像细化 结构元B对A的细化表示为以下 其中 是结构元B在A中的匹配(形态学击中击不中变换)。集合A就是你要细化的图像 结构元B用以下八个原创 2017-04-18 14:36:14 · 1836 阅读 · 0 评论 -
C# 24位彩图转8位灰度图
将24位的彩色图片转化为8位的灰度图片 C#写的。using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using原创 2017-04-01 14:23:33 · 3353 阅读 · 0 评论 -
Zxing实时读取QR码
用了Zxing和EmguEmgu用来打开笔记本的摄像头采图,然后通过zxing实时读取QR码using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.原创 2017-04-01 13:16:49 · 1165 阅读 · 0 评论 -
Emgu与Aforge速度测试
测试了下它们彩色图像转灰色图像的速度 彩色图像大小1426*890 private void button1_Click(object sender, EventArgs e) { Mat gray=new Mat(); st = new Stopwatch(); st.Start();原创 2017-04-01 10:38:50 · 1887 阅读 · 0 评论