Halcon HWindowControl 控件中图像的缩放与移动
摘要:写在前面,在较高的版本中有提供一个更好的显示控件 HSmartWindowControl 。 • 缩放时,将鼠标的当前位置作为缩放的中心 • 移动时,修改图像的原点即可使用 Halcon 中 HWindowControl 控件的 ImagePart 来实现图像缩放。 ImagePart 指示的是要在
阅读全文
posted @
2021-01-29 10:52
一杯清酒邀明月
阅读(2450)
推荐(1) 编辑
OpenCV cv::mean()函数详解
摘要:opencv中封装了一个专门用于求解cv::Mat均值的函数,即cv::mean(&cv::Mat),该函数会得到Mat中各个通道的均值,若要获取指定通道的均值,做进一步解析即可。 具体使用方法如下: 示例代码: 1 cv::Mat inImage; 2 cv::Scalar neam=cv::me
阅读全文
posted @
2021-01-28 16:47
一杯清酒邀明月
阅读(2853)
推荐(0) 编辑
OpenCV 霍夫变换(Hough Transform)
摘要:一、霍夫变换(Hough transform) 常见的理论概述是这样的: 1、简单介绍 霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,它通过一种投票算法检测具有特定形状的物体。Hough变换是图像处理中从图像中识别几何形状的基本方法之一。Hough变换的基本原理在于利用点
阅读全文
posted @
2021-01-28 14:26
一杯清酒邀明月
阅读(2924)
推荐(0) 编辑
OpenCV 图像分割
摘要:1 基于阈值 1.1 灰度阈值化 灰度阈值化,是最简单,速度最快的图像分割方法,广泛用于硬件图像处理领域 (例如,基于 FPGA 的实时图像处理等)。 设输入图像 ff,输出图像 gg,则阈值化公式为: g(i,j)={10当 f(i, j) ≥ T 时当 f(i, j) < T 时g(i,j)={
阅读全文
posted @
2021-01-28 10:42
一杯清酒邀明月
阅读(940)
推荐(0) 编辑
OpenCV 使用ROI进行图像切割
摘要:ROI(region of interest)——感兴趣区域。 1.用途 这个区域是图像分析所关注的重点。圈定这个区域,以便进行进一步的处理。而且,使用ROI指定 想读入的目标,可以减少处理时间,增加精度,给图像处理带来不小的便利。 2.定义ROI方法 使用表示矩阵区域的Rect。 它指定矩阵的左上
阅读全文
posted @
2021-01-28 10:21
一杯清酒邀明月
阅读(609)
推荐(0) 编辑
OpenCV 轮廓查找与绘制-最小外接矩形
摘要:一、简介 二、轮廓最小外接矩形的绘制 1 #include "opencv2/opencv.hpp" 2 using namespace cv; 3 4 void main() 5 { 6 //轮廓最小外接矩形的绘制 7 Mat srcImg = imread("E://00.png"); 8 Ma
阅读全文
posted @
2021-01-27 11:59
一杯清酒邀明月
阅读(1980)
推荐(0) 编辑
OpenCV 提取轮廓的凸包、外包矩形、最小外包矩形、最小外包圆
摘要:1、提取轮廓的凸包 CONVEXHULL()函数(点我看OPENCV3.2帮助文档) 函数调用形式: void convexhul(InputArray points,OutputArray hull,bool clockwise=false,bool returnPoints=true) 输入:第
阅读全文
posted @
2021-01-27 11:57
一杯清酒邀明月
阅读(1571)
推荐(0) 编辑
OpenCV boundingRect、minAreaRect的用法区别
摘要:当得到对象轮廓后,可用boundingRect()得到包覆此轮廓的最小正矩形,minAreaRect()得到包覆轮廓的最小斜矩形。 1)Rect boundingRect(InputArray points) points:输入信息,可以为包含点的容器(vector)或是Mat。返回包覆输入信息的最
阅读全文
posted @
2021-01-27 11:54
一杯清酒邀明月
阅读(969)
推荐(0) 编辑
OpenCV findContours函数参数详解
摘要:OpenCV中通过使用findContours函数,简单几个的步骤就可以检测出物体的轮廓,很方便。这些准备继续探讨一下findContours方法中各参数的含义及用法,比如要求只检测最外层轮廓该怎么办?contours里边的数据结构是怎样的?hierarchy到底是什么鬼?Point()有什么用?
阅读全文
posted @
2021-01-27 11:48
一杯清酒邀明月
阅读(1793)
推荐(0) 编辑
OpenCV 画直线函数 line()
摘要:opencv 3.0 提供了专用的画直线的函数line()。 构造函数之一如下: void line(Mat& img, Point pt1, Point pt2, const Scalar& color, int thickness=1, int lineType=8, int shift=0)
阅读全文
posted @
2021-01-27 11:40
一杯清酒邀明月
阅读(1518)
推荐(0) 编辑
OpenCV circle() 画圆函数
摘要:这个函数其实就是画圆: cvCircle(CvArr* img, CvPoint center, int radius, CvScalar color, int thickness=1, int lineType=8, int shift=0) img为源图像指针 center为画圆的圆心坐标 ra
阅读全文
posted @
2021-01-27 11:39
一杯清酒邀明月
阅读(2122)
推荐(1) 编辑
OpenCV approxPolyDP 多边拟合函数
摘要:pproxPolyDP 主要功能是把一个连续光滑曲线折线化,对图像轮廓点进行多边形拟合。 原理图:对比之前黑点连线,之后蓝色连线: C++: void approxPolyDP(InputArray curve, OutputArray approxCurve, double epsilon, bo
阅读全文
posted @
2021-01-27 10:09
一杯清酒邀明月
阅读(1284)
推荐(0) 编辑
Qt 使用QScrollArea无法滑动的解决办法
摘要:因工作原因从来没有用过Qt的我最近也接触了一下Qt,在使用QScrollArea的时候发现UI添加进QScrollArea无法滑动,在网上找了很多教程也没发现一个编程新手,能给新手讲明白的教程。无奈之下只好自己琢磨,下面给大家分享下我使用QScrollArea的过程及其Demo。 两种方法: 1.直
阅读全文
posted @
2021-01-26 11:38
一杯清酒邀明月
阅读(2339)
推荐(1) 编辑
Qt 设置QCombobox里面的选项不可选择
摘要:有两种方法 第一种: 1 disable =true; 2 QStandardItem* item = model->item(1); 3 item->setFlags(disable ? item->flags() & ~(Qt::ItemIsSelectable|Qt::ItemIsEnable
阅读全文
posted @
2021-01-25 16:36
一杯清酒邀明月
阅读(3598)
推荐(0) 编辑
Qt 遍历comboBox下拉框的内容并进行判断
摘要:一共用到两个函数:1、count();用于计算当前Combox中一共有几个item。2、itemText(int i);参数 i 是需要查看item的索引。用来查看当前item的text(文本信息)。 1 for(int i = 0; i < ui->comboBox_displayDev->cou
阅读全文
posted @
2021-01-25 16:34
一杯清酒邀明月
阅读(2543)
推荐(1) 编辑
Qt setEnabled() 、 setClickable()
摘要:一、setEnabled(bool) true:可编辑,激活按钮,可以触发事件 false:不可编辑状态 ,无论是否可点击(即使将setClickable()设置成true), 都无法响应任何触发事件 二、setClickable(bool) true: 按钮可点击 false:按钮不可点击
阅读全文
posted @
2021-01-25 14:59
一杯清酒邀明月
阅读(991)
推荐(0) 编辑
Qt QChart 折线 QLineSeries
摘要:QLineSeries是一个绘制折线图的类,使用也非常的简单,先看看下面的例子: 1 #include <QtWidgets/QApplication> 2 #include <QtWidgets/QMainWindow> 3 #include <QtCharts/QChartView> 4 #in
阅读全文
posted @
2021-01-25 09:37
一杯清酒邀明月
阅读(2747)
推荐(0) 编辑
Qt 获取容器Vector中的最大值和最小值
摘要:获取qt容器中的最大值和最小值的做法: 一、加上头文件 #include <QVector> 二、加上如下的代码: 1 QVector <double> data {11.0, 44.0, 22.0, 33.0, 10.0,65.0}; 2 //第一种表示最大值: 3 // QVector<doub
阅读全文
posted @
2021-01-22 15:15
一杯清酒邀明月
阅读(3421)
推荐(0) 编辑
Qt QPixmap 颜色摄取器
摘要:QPixmap常用方法: QPixmap(const QString & fileName, const char * format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor) QBitmap mask() const bool save
阅读全文
posted @
2021-01-22 14:48
一杯清酒邀明月
阅读(605)
推荐(0) 编辑
Qt QChart 如何获取坐标轴的高度和宽度
摘要:plotArea属性的,返回的是QRectF类 ui->chartView->chart()->plotArea().width()
阅读全文
posted @
2021-01-22 13:32
一杯清酒邀明月
阅读(895)
推荐(0) 编辑
Qt QChart QCategoryAxis 坐标轴添加标签、汉字、字母等
摘要:QCchart坐标轴添加信息的方法如下:运用QCategoryAxis类重新编辑坐标轴。 1 QCategoryAxis *axisX=new QCategoryAxis; 2 3 axisX->setMin(0); 4 axisX->setMax(60); 5 axisX->setStartVal
阅读全文
posted @
2021-01-22 10:52
一杯清酒邀明月
阅读(3460)
推荐(0) 编辑
Qt QChart 设置部分图例隐藏
摘要:QChart 设置部分图例隐藏场景介绍 在我们绘制QChart图形中,如果需要绘制折线柱状等多种格式序列时,我们只想柱状图显示图例怎,折线图例隐藏怎么实现呢? QChart 设置部分图例隐藏解决办法 关键词: 所有序列标记:QList<QLegendMarker *> QLegend::marker
阅读全文
posted @
2021-01-22 09:27
一杯清酒邀明月
阅读(2980)
推荐(1) 编辑
Qt QChart 中 QValueAxis 和 QCategoryAxis 区别
摘要:QValueAxis Detailed Description The QValueAxis class is used for manipulating chart’s axis.ValueAxis can be setup to show axis line with tick marks, g
阅读全文
posted @
2021-01-22 09:10
一杯清酒邀明月
阅读(1676)
推荐(0) 编辑
Qt QChart 绘制面积图 QAreaSeries
摘要:0.创建ui窗口: 主要就是拖拉一个Horizontal Layout 1.创建QChart对象: 1 QChart *chart = new QChart(); 2 chart->setTitle("面积图演示"); //设置表格标题 2.创建QLineSeries对象: 1 QLineSerie
阅读全文
posted @
2021-01-21 16:50
一杯清酒邀明月
阅读(1227)
推荐(0) 编辑
Qt QChart 设置线条样式 虚线
摘要:series->setPen(QPen(QBrush(Qt::red),2,Qt::DashLine)); 看助手,必须把setpen参数填完整,设置虚线的参数位于第三个,所以前三个参数都要明确,后面的不用管保持默认参数。以下是原接口: QPen(const QBrush &brush, qreal
阅读全文
posted @
2021-01-21 16:39
一杯清酒邀明月
阅读(2435)
推荐(1) 编辑
Qt 读取csv文件并且绘制折线图
摘要:1 void MainWindow::readcsvfile() //读取csv 2 { 3 QFile csvFile("C:/Users/Administrator/Desktop/Demo/0702.CSV"); 4 QStringList csvList; 5 csvList.clear()
阅读全文
posted @
2021-01-21 15:39
一杯清酒邀明月
阅读(1514)
推荐(1) 编辑
Qt comboBox控件的三种基本用法
摘要:一般用到控件comboBox的基本用法是获取当前的值: 1.currentIndex(); 获取当前comBox的索引,是int类型的值。2.currentText(); 获取当前comBox的文本,是QString类型。 二、可以通过以下两种方式来通过切换comobox的值来执行一些指令: 1、通
阅读全文
posted @
2021-01-21 14:50
一杯清酒邀明月
阅读(7433)
推荐(0) 编辑
Qt QStringList 的学习笔记
摘要:QStringList 初始化 1 QStringList qstrList; 2 qstrList<<"Android" << "Qt Creator" << "Java" << "C++"; 3 QStringListIterator strIterator(qstrList); 4 while
阅读全文
posted @
2021-01-21 13:30
一杯清酒邀明月
阅读(4979)
推荐(0) 编辑
Qt 获取文件路径、文件名、后缀
摘要:1 QString file_full, file_name, file_path,file_suffix ; 2 QFileInfo fileinfo; 3 file_full = QFileDialog::getOpenFileName(this,.....); 4 fileinfo = QFi
阅读全文
posted @
2021-01-21 13:27
一杯清酒邀明月
阅读(2032)
推荐(0) 编辑
Qt QDir::currentPath()和QAppllication::appllicationDirPath()用法区别
摘要:最近需要动态获取exe文件的路径信息,通过查找看到了QDir::currentPath(),但是,在后来调试程序的时候出现了错误,这个路径和我想象中的不一致。经过多次尝试和调试,总结如下: 【 调试环境:vs2010+ QT】 1.QDir::currentPath() (1)在vs2010中,之间
阅读全文
posted @
2021-01-21 13:26
一杯清酒邀明月
阅读(1040)
推荐(0) 编辑
Qt 程序获取程序所在路径、用户目录路径、临时文件夹等特殊路径的方法
摘要:Qt 程序获取程序所在路径、用户目录路径、临时文件夹等特殊路径的方法 经常我们的程序中需要访问一些特殊的路径,比如程序所在的路径、用户目录路径、临时文件夹等。在 Qt 中实现这几个功能所用的方法虽然都不难,但是各不相同,每次用到时还要现去查,很不方便。因此就写了这篇博客,把这几种需求的实现方式总结了
阅读全文
posted @
2021-01-21 13:25
一杯清酒邀明月
阅读(1161)
推荐(0) 编辑
Qt comboBox设置下拉菜单()
摘要:设置combobox的item方法有两种 方法一:适合有规律的,可利用for循环减少代码量,当然也可以一个一个插入方法二:适合无规律的 代码如下 1 //方法一: 2 for (int i=1;i<5;i++) 3 { 4 ui->comboBox->addItem(QString::number(
阅读全文
posted @
2021-01-21 11:37
一杯清酒邀明月
阅读(3846)
推荐(0) 编辑
Qt 快速读写Excel指南
摘要:Qt Windows 下快速读写Excel指南 很多人搜如何读写excel都会看到用QAxObject来进行操作,很多人试了之后都会发现一个问题,就是慢,非常缓慢!因此很多人得出结论是QAxObject读写excel方法不可取,效率低。后来我曾试过用ODBC等数据库类型的接口进行读写,遇到中文嗝屁不
阅读全文
posted @
2021-01-21 09:01
一杯清酒邀明月
阅读(5712)
推荐(4) 编辑
可见光的波长与频率对照表
摘要:信息摘要: 可见光的色散谱根据波长依次为红、橙、黄、绿、青、蓝、紫。对应的波长(频率)在下表中列出。绿光波长为500-560nm,黄光波长为580-595nm。 绿光波长为500-560nm,黄光波长为580-595nm。 不同波长的可见光所对应的不同颜色。 声波的频率范围0.0001Hz~10^1
阅读全文
posted @
2021-01-20 16:09
一杯清酒邀明月
阅读(185399)
推荐(3) 编辑
Qt 多pro与多pri合作编程
摘要:pri文件跟pro文件没有本质区别,都是起到包含路径等作用,区别在于pro文件是主要文件,pri是附属文件。 要是项目相对来说比较复杂,比如多平台开发时,需要用到多pri与pro共同合作,当然也可以编辑成静态库或者动态库的形式,现在讲一下如何实现多pri。 一个pro可以包含多个pri,例如:inc
阅读全文
posted @
2021-01-20 10:38
一杯清酒邀明月
阅读(516)
推荐(0) 编辑
Qt 项目pri使用浅谈
摘要:项目中的文件最好分类一下,这样使用起来也方便,这里使用pri,看图片, 注意pro里面有了include(*.pri) 也要加入INCLUDEpATH_= ....... , pri里面就是简单的 HEADERS += \ SOURCES += \ 工程截图 pro截图
阅读全文
posted @
2021-01-20 10:36
一杯清酒邀明月
阅读(386)
推荐(0) 编辑
C# 关于路径的总结
摘要:web部分 前一段时间写代码时经常遇到获取路径问题,总是感觉有点乱,于是就总结了下,大家若有需要可以参考 1. 在.Net中web开发时 (1) /表示根目录,目录~/在runat=server的控件中会自动被解析为Request.ApplicationPath的值,是当前应用程序的目录 如 ~/u
阅读全文
posted @
2021-01-20 09:58
一杯清酒邀明月
阅读(916)
推荐(1) 编辑
C# @的用法总结
摘要:本文实例汇总了C#中@的用法,对C#程序设计来说有不错的借鉴价值。具体如下: 一 字符串中的用法 1.学过C#的人都知道C# 中字符串常量可以以@ 开头声名,这样的优点是转义序列“不”被处理,按“原样”输出,即我们不需要对转义字符加上 \ (反斜扛),就可以轻松coding。如, string fi
阅读全文
posted @
2021-01-20 09:37
一杯清酒邀明月
阅读(964)
推荐(1) 编辑
C# | Winform编程控件之数字输入框控件(numericUpDown)
摘要:数字输入框控件是用于输入数字和调节数字的一个控件,该控件中的数字储存为decimal类型,但是数字必须是整数而不能是小数。 控件在工具箱中的样式如下: 控件拖拽到窗口后的样式如下: 常用属性: Value属性:控制数字输入框的数字的值(可用控件的向上或者向下符号对数字进行调节也可以自己输入)。 Ma
阅读全文
posted @
2021-01-20 09:34
一杯清酒邀明月
阅读(3070)
推荐(0) 编辑
C# WinForm程序怎么打包成安装项目(VS2010图解)
摘要:作为研发人员,在本机上开发的winform、wpf或者控制台程序需要发给其他人测试时候,一般需要对其进行打包生成setup安装文件,根据网上查找的资料并结合自己打包成功,记录如下: 注:本程序是一个利用winform实现的客户端程序,解决方案为 第一步,右击“解决方案XXX”->添加“新建项目”-》
阅读全文
posted @
2021-01-19 13:33
一杯清酒邀明月
阅读(1093)
推荐(0) 编辑
C# 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记
摘要:单元是进程内部具有相同线程访问要求的对象的逻辑容器bai。同一单元中的所有对象都可以接收从该单元中的任何线程发出的调用。.NET Framework 不使用单元,托管对象自己负责以线程安全的方式使用所有共享资源。 由于 COM 类使用单元,因此公共语言运行库需要在 COM interop 的情况下调
阅读全文
posted @
2021-01-19 13:14
一杯清酒邀明月
阅读(1224)
推荐(0) 编辑
C# 异常:在调用OLE之前,必须将当前线程设置为单线程单单元(STA)模式
摘要:问题来源: 昨晚上在调试数据库大作业的时候,我在注册界面Register里点击"上传头像"这个linklabel时,程序出现了一个异常:在调用OLE之前,必须将当前线程设置为单线程单单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。只有将调试程序附加到该
阅读全文
posted @
2021-01-19 11:41
一杯清酒邀明月
阅读(516)
推荐(0) 编辑
VisionPro 关闭程序断开相机连接
摘要:1 using Cognex.VisionPro.FGGigE; 2 using Cognex.VisionPro.FGGigE.Implementation.Internal; 3 //关闭相机连接,防止程序报错 4 CogFrameGrabberGigEs cameras = new CogFr
阅读全文
posted @
2021-01-18 16:17
一杯清酒邀明月
阅读(405)
推荐(0) 编辑
VisionPro 脚本
摘要:脚本分为简单脚本和高级脚本,假如别人写的脚本在自己的脚本中无法实现,可以尝试切换下简单脚本/高级脚本试一试 简单脚本可以直接使用: 高级脚本:需要转换格式
阅读全文
posted @
2021-01-18 16:16
一杯清酒邀明月
阅读(407)
推荐(0) 编辑
VsionPro 相机操作类
摘要:1 using Cognex.VisionPro.FGGigE; 2 using System; 3 using System.Collections.Generic; 4 using System.Linq; 5 using System.Text; 6 using System.Threadin
阅读全文
posted @
2021-01-18 16:14
一杯清酒邀明月
阅读(590)
推荐(0) 编辑
VisionPro 图像操作
摘要:1 /// <summary> 2 /// 获得ICogImage图像格式 3 /// </summary> 4 /// <param name="imagepath"></param> 5 /// <returns></returns> 6 private ICogImage GetImage(s
阅读全文
posted @
2021-01-18 16:13
一杯清酒邀明月
阅读(1449)
推荐(0) 编辑
VisionPro 相机硬件触发笔记
摘要:1 using Cognex.VisionPro; 2 using Cognex.VisionPro.FGGigE; 3 using Cognex.VisionPro.FGGigE.Implementation.Internal; 4 using Cognex.VisionPro.ToolBlock
阅读全文
posted @
2021-01-18 16:11
一杯清酒邀明月
阅读(1343)
推荐(0) 编辑
VisionPro 相机取像操作,.NET4.0
摘要:1 private string path = AppDomain.CurrentDomain.BaseDirectory + "12.vpp"; 2 private string path1 = AppDomain.CurrentDomain.BaseDirectory + "CCD.vpp";
阅读全文
posted @
2021-01-18 16:09
一杯清酒邀明月
阅读(557)
推荐(0) 编辑
VisionPro 相机操作学习
摘要:1 private string path = AppDomain.CurrentDomain.BaseDirectory + "12.vpp"; 2 private string path1 = AppDomain.CurrentDomain.BaseDirectory + "CCD.vpp";
阅读全文
posted @
2021-01-18 16:07
一杯清酒邀明月
阅读(683)
推荐(0) 编辑
Qt QPainter的使用及矩形、圆形等常见图形的画法
摘要:1 #include<QApplication> 2 #include <QWidget> 3 #include <QPainter> 4 class MyMainWindow:public QWidget 5 { 6 public: 7 MyMainWindow(QWidget *parent =
阅读全文
posted @
2021-01-18 09:13
一杯清酒邀明月
阅读(5417)
推荐(0) 编辑
C# Task详解
摘要:1、Task的优势 ThreadPool相比Thread来说具备了很多优势,但是ThreadPool却又存在一些使用上的不方便。比如: ◆ ThreadPool不支持线程的取消、完成、失败通知等交互性操作; ◆ ThreadPool不支持线程执行的先后次序; 以往,如果开发者要实现上述功能,需要完成
阅读全文
posted @
2021-01-15 15:27
一杯清酒邀明月
阅读(893)
推荐(0) 编辑
C# 线程池(ThreadPool)
摘要:先引入一下线程池的概念: 百度百科:线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程
阅读全文
posted @
2021-01-15 14:07
一杯清酒邀明月
阅读(1336)
推荐(0) 编辑
C# 线程池ThreadPool的用法简析
摘要:什么是线程池?为什么要用线程池?怎么用线程池? 1. 什么是线程池? .NET Framework的ThreadPool类提供一个线程池,该线程池可用于执行任务、发送工作项、处理异步 I/O、代表其他线程等待以及处理计时器。那么什么是线程池?线程池其实就是一个存放线程对象的“池子(pool)”,他提
阅读全文
posted @
2021-01-15 14:02
一杯清酒邀明月
阅读(308)
推荐(0) 编辑
C# Thread线程介绍
摘要:一、基本概念 1、进程 首先打开任务管理器,查看当前运行的进程: 从任务管理器里面可以看到当前所有正在运行的进程。那么究竟什么是进程呢? 进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源。一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括一个或
阅读全文
posted @
2021-01-15 13:33
一杯清酒邀明月
阅读(1169)
推荐(0) 编辑
VisionPro 各控件的C#中类库(CogCaliperTool)
摘要:卡尺工具为在实际工业应用中比较常见 尺寸量测,异常尺寸检测 1.控件为以下标识,其输入的图片为灰图。在使用使用前最好需进行定位工具进行定位,以便更好的量测 2.工具设定(检测区域设定) 3.工具设定(基本设定,使用单边还是二边检测,注意检测方向,极型选择) 4.工具设定(基本设定,计分项目选择时,注
阅读全文
posted @
2021-01-15 11:59
一杯清酒邀明月
阅读(667)
推荐(0) 编辑
VisionPro 各控件的C#中类库(COLOR CogColorSegmenterTool)
摘要:CogColorSegmenterTool控件主要在颜色检测中使用。 1.CogColorSegmenterTool使用很简单,把颜色进行分离出来成为灰图(黑白二种) 步骤如下新增指定点或区域的颜色: 2.确认需要进行分离的区域(得到的图片为此区域图片) 3.得到的区域图片(进行各项检测使用) 4.
阅读全文
posted @
2021-01-15 11:58
一杯清酒邀明月
阅读(621)
推荐(0) 编辑
VisionPro 各控件的C#中类库 (CogToolBlock类)像函数设计一样。
摘要:1.先了解其控件使用 编辑增加控件步骤1-2-3-4。我们把他当做一个整体进行封装,可以可以看成一个函数设计(增加输入类型几个,添加输出类型几个) 2.进行CogToolBlock控件功能设计(进行函数功能设计--即功能调试) 3.进行添加功能控件,进行配置把要输入和输出的项目设定好测试OK后进行保
阅读全文
posted @
2021-01-15 11:56
一杯清酒邀明月
阅读(2580)
推荐(1) 编辑
VisionPro 各控件的C#中类库(CogPMAlignTool类)
摘要:在C#中我们应用CogPMAlignTool类很多,主要用于零件的尺寸角度,中心点,角度确认(VISIONPRO9.0) 1.这个工具控件中我们需提供的是InputImage 为CogImage8Grey的灰图。 图片我们可以从相机来也可以文档的图片来,由于我这边没有相机,我采用网上下载的图片进行测
阅读全文
posted @
2021-01-15 11:54
一杯清酒邀明月
阅读(1797)
推荐(0) 编辑
VisionPro 各控件的C#中类库 (CogImageFileTool,CogImageConvert,图片显示cogRecordDisplay)
摘要:我使用VISIONPRO 的版本为9.0;往往很多USB相机没有办法使用,我们可以采用拍图在文档下再同步抓取图片,再使用。 1.实现配置好CogImageFileTool工具,保存在文档中为img.vpp,步骤如下4步。 CogImageFileTool 序列化回来: CogImageFileToo
阅读全文
posted @
2021-01-15 11:51
一杯清酒邀明月
阅读(3066)
推荐(1) 编辑
VisionPro 各控件的C#中类库 CogSerializer 用于配置好以后
摘要:用于反序列化的应用 各种类型。 this.Acq = CogSerializer.LoadObjectFromFile(Application.StartupPath+"\\Camera\\Camera1.vpp") as CogAcqFifoTool; 保存数据时: CogSerializer.S
阅读全文
posted @
2021-01-15 11:48
一杯清酒邀明月
阅读(855)
推荐(0) 编辑
VisionPro 模板匹配工具CogPMAlignTool
摘要:CogPMAlignTool 是一种图像特征搜索工具,基于图像特征点进行的。 用于图案的位置确认(mark定位,尺寸量测等) 图示:样式结构: 怎样进行训练图像 选择要训练图像按钮进行 1.这个选择算法 2.进行区域选择和原点设定--注意原点最好设定在区域的中心 3.进行训练--很简单 4.注意图像
阅读全文
posted @
2021-01-15 11:47
一杯清酒邀明月
阅读(1902)
推荐(0) 编辑
C# Invoke、begininvoke的用法
摘要:invoke和begininvoke 区别 一直对invoke和begininvoke的使用和概念比较混乱,这两天看了些资料,对这两个的用法和原理有了些新的认识和理解。 首先说下,invoke和begininvoke的使用有两种情况: 1. control中的invoke、begininvoke。
阅读全文
posted @
2021-01-15 11:40
一杯清酒邀明月
阅读(4176)
推荐(1) 编辑
C# 内存泄露与资源释放 经验总结
摘要:C#相比其他语言,拥有强大的垃圾回收机制,但并不是这样,你就可以对内存管理放任不管,其实在稍不注意的时候,可能就造成了内存泄露,甚至因此程序崩溃。 以下是遇到过的内存优化-内存泄露的问题与应对方案。 场景: 1. Form.ShowDialog()问题。 1 private void button1
阅读全文
posted @
2021-01-15 11:23
一杯清酒邀明月
阅读(1560)
推荐(1) 编辑
C# ApartmentState 枚举,指定线程单元状态
摘要:指定的单元状态 Thread。 命名空间: System.Threading程序集: mscorlib(位于 mscorlib.dll) 成员 成员名称说明 MTA Thread 将创建并进入一个多线程的单元。 STA Thread 将创建并进入一个单线程单元。 Unknown ApartmentS
阅读全文
posted @
2021-01-15 11:19
一杯清酒邀明月
阅读(282)
推荐(0) 编辑
VisionPro 各控件的C#中类库 CogAcqFifoTool(2)
摘要:Tool which acquires images using an acquisition fifo on a frame grabber. Namespace: Cognex.VisionProAssembly: Cognex.VisionPro.Core (in Cognex.VisionP
阅读全文
posted @
2021-01-15 10:59
一杯清酒邀明月
阅读(1114)
推荐(0) 编辑
VisionPro 各控件的C#中类库 CogAcqFifoTool(1)
摘要:1.使用Visionpro首先要进行取图作业,动态取图,从相机,视频卡等。就要用到CogAcqFifoTool的工具 基本设定 基本格式: 性 说明 CogImage8Grey 提供从黑到白 256 个灰度的灰度图像。 CogImage16Grey 提供 16 位编码的灰度图像。有关详细信息,请参阅
阅读全文
posted @
2021-01-15 10:57
一杯清酒邀明月
阅读(1492)
推荐(0) 编辑
C# new的三种用法
摘要:在 C# 中,new 关键字可用作运算符、修饰符或约束。 1)new 运算符:用于创建对象和调用构造函数。 2)new 修饰符:在用作修饰符时,new 关键字可以显式隐藏从基类继承的成员。 3)new 约束:用于在泛型声明中约束可能用作类型参数的参数的类型。 1 public class Progr
阅读全文
posted @
2021-01-15 10:55
一杯清酒邀明月
阅读(1423)
推荐(0) 编辑
C# as用法
摘要:在程序中,进行类型转换时常见的事,C#支持基本的强制类型转换方法,例如 1 Object obj1 = new NewType(); 2 NewType newValue = (NewType)obj1; 这样强制转换的时候,这个过程是不安全的,因此需要用try-catch语句进行保护,这样一来,比
阅读全文
posted @
2021-01-15 10:38
一杯清酒邀明月
阅读(723)
推荐(0) 编辑
C# 基类之Environment类
摘要:C#基类之Environment类 Environment类常用的属性 属性名说明是否是静态属性 CurrentDirectory 获得程序集所在的文件夹 是 ProcessorCount 获得计算机上的处理器个数 是 TickCount 自上次启动计算机以来所经过的时间(以毫秒为单位) 是 Ver
阅读全文
posted @
2021-01-15 09:46
一杯清酒邀明月
阅读(422)
推荐(0) 编辑
C#开发的软件在Windows7中出现对路径的访问被拒绝异常
摘要:C#开发的软件在Windows7中出现对路径的访问被拒绝异常在VS 2008/ VS2010下, 右键项目=>属性=>安全性=>直接勾选“启用ClickOnce安全设置”即可解决问题。 创建文件夹和文件时,选择其他盘,比如:D,E,F . 不要选择创建到C盘。
阅读全文
posted @
2021-01-15 09:18
一杯清酒邀明月
阅读(581)
推荐(0) 编辑
C# (Winform) Enable和visible的区别
摘要:Enable:可用性 visible:可见性 如果设置了button或其他控件的Enable为false,还是能够看到控件,只是控件是灰色的,而且点不了; 但设置了visible,控件就完全看不见了,但是它的方法还是可以通过其他空间来调用的。
阅读全文
posted @
2021-01-15 08:48
一杯清酒邀明月
阅读(1437)
推荐(0) 编辑
C# 技术漫谈之垃圾回收机制(GC)
摘要:GC的前世与今生 虽然本文是以.NET作为目标来讲述GC,但是GC的概念并非才诞生不久。早在1958年,由鼎鼎大名的图林奖得主John McCarthy所实现的Lisp语言就已经提供了GC的功能,这是GC的第一次出现。Lisp的程序员认为内存管理太重要了,所以不能由程序员自己来管理。 但后来的日子里
阅读全文
posted @
2021-01-15 08:35
一杯清酒邀明月
阅读(444)
推荐(0) 编辑
vshost.exe
摘要:vshost.exe是Visual Studio 2005/2008/2010中的一项功能,能提高调试性能,支持部分信任调试并支持设计时表达式计算。宿主进程文件的文件名中包含 vshost,并位于项目的输出文件夹中。 描述 宿主进程是 Visual Studio 2005/2008/2010 中的一
阅读全文
posted @
2021-01-15 08:30
一杯清酒邀明月
阅读(351)
推荐(0) 编辑
C# WinForm程序防止多开的方法总结(亲测)
摘要:1、Winform启动的时候,检测是否存在同样的进程名,防止程序多开; 1 static class Program 2 { 3 /// <summary> 4 /// 应用程序的主入口点。 5 /// </summary> 6 [STAThread] 7 static void Main() 8
阅读全文
posted @
2021-01-14 16:27
一杯清酒邀明月
阅读(410)
推荐(0) 编辑
C# 如何优雅的终止一个线程
摘要:大家都知道在C#里面,我们可以使用 Thread.Start方法来启动一个线程,当我们想停止执行的线程时可以使用Thread.Abort方法来强制停止正在执行的线程,但是请注意,你确定调用了Thread.Abort方法后线程就立刻停止了吗? 答案是:不是! 下面我们来解释一下Abort方法是如何工作
阅读全文
posted @
2021-01-14 16:18
一杯清酒邀明月
阅读(1259)
推荐(0) 编辑
C# 释放内存的方法
摘要:如何释放内存: 1 [DllImport("kernel32.dll", EntryPoint = "SetProcessWorkingSetSize")] 2 public static extern int SetProcessWorkingSetSize(IntPtr process, int
阅读全文
posted @
2021-01-14 10:02
一杯清酒邀明月
阅读(3846)
推荐(0) 编辑
VS2015代码自动对齐快捷键
摘要:1, ctrl+a 2, ctrl+k 3, ctrl+f
阅读全文
posted @
2021-01-14 09:49
一杯清酒邀明月
阅读(881)
推荐(0) 编辑
C#(Winform)的Show()和ShowDialog()方法
摘要:1. 显示窗口的两种方式: Winform中的Form,在显示窗口时,可以使用Show()和ShowDialog()两种方式 2. 非模态窗口方式(可以跟其他界面自由切换,而且不阻塞代码) Show()方法启动的窗口是非模态窗口,可以跟其他界面自由切换, 其后面的代码也会立刻执行,如: 1 Form
阅读全文
posted @
2021-01-14 09:03
一杯清酒邀明月
阅读(1286)
推荐(1) 编辑
C# WinForm布局方式
摘要:一、默认布局 ★可以加panel,也可以不加; ★通过鼠标拖动控件的方式,根据自己的想法布局。拖动控件的过程中,会有对齐的线,方便操作; ★也可选中要布局的控件,在工具栏中有对齐工具可供选择,也有调整各个控件大小的工具。 注:分层:右键点击控件。可以选择置于顶层或置于顶层。 锁定控件:当部分布局完成
阅读全文
posted @
2021-01-14 08:59
一杯清酒邀明月
阅读(5794)
推荐(0) 编辑
C# WinForm控件随窗体大小改变自动适应改变
摘要:在设计可供用户调整大小的窗体时,如何实现该窗体上的控件也应能正确地随窗体的改变而自动调整大小并且能重新定位?此时就要借助控件的.Anchor属性。Anchor属性定义控件的定位点位置。当控件锚定到某个窗体时,如果该窗体的大小被调整,那么该控件维持它与定位点位置之间的距离不变。例如,如果“:Butto
阅读全文
posted @
2021-01-13 16:12
一杯清酒邀明月
阅读(6915)
推荐(1) 编辑
PACS系统介绍
摘要:PACS系统是Picture Archiving and Communication Systems的缩写,意为影像归档和通信系统。它是应用在医院影像科室的系统,主要的任务就是把日常产生的各种医学影像(包括核磁,CT,超声,各种X光机,各种红外仪、显微仪等设备产生的图像)通过各种接口(模拟,DICO
阅读全文
posted @
2021-01-13 13:51
一杯清酒邀明月
阅读(2113)
推荐(0) 编辑
DICOM 介绍
摘要:DICOM(Digital Imaging and Communications in Medicine)即医学数字成像和通信,是医学图像和相关信息的国际标准(ISO 12052)。它定义了质量能满足临床需要的可用于数据交换的医学图像格式。 DICOM被广泛应用于放射医疗,心血管成像以及放射诊疗诊断
阅读全文
posted @
2021-01-13 13:43
一杯清酒邀明月
阅读(881)
推荐(0) 编辑
Ubuntu 没有权限(不能)创建文件夹(目录)
摘要:可以在终端直接运行 sudo nautilus,弹出来的nautilus可以直接GUI操作,中途别关终端。如果遇到需要输入root密码,则输入root密码就可以启动这个图形界面了。
阅读全文
posted @
2021-01-13 11:14
一杯清酒邀明月
阅读(779)
推荐(0) 编辑
Qt Quick之QML与C++混合编程详解
摘要:Qt Quick 技术的引入,使得你能够快速构建 UI ,具有动画、各种绚丽效果的 UI 都不在话下。但它不是万能的,也有很多局限性,原来 Qt 的一些技术,比如低阶的网络编程如 QTcpSocket ,多线程,又如 XML 文档处理类库 QXmlStreamReader / QXmlStreamW
阅读全文
posted @
2021-01-13 09:48
一杯清酒邀明月
阅读(2136)
推荐(0) 编辑
Qt QML与C++混合编程
摘要:一、QML与C++混合编程简介 QML与C++混合编程就是使用QML高效便捷地构建UI,而C++则用来实现业务逻辑和复杂算法。 二、QML访问C++ Qt集成了QML引擎和Qt元对象系统,使得QML很容易从C++中得到扩展,在一定的条件下,QML就可以访问QObject派生类的成员,例如信号、槽函数
阅读全文
posted @
2021-01-13 09:32
一杯清酒邀明月
阅读(2003)
推荐(0) 编辑
Qt QML和QtQuick简介以及QML实例
摘要:从 Qt 4.7 开始,Qt 引入了一种声明式脚本语言,称为 QML(Qt Meta Language 或者 Qt Modeling Language),作为 C++ 语言的一种替代。而 Qt Quick 就是使用 QML 构建的一套类库。 QML 是一种基于 JavaScript 的声明式语言。在
阅读全文
posted @
2021-01-13 09:22
一杯清酒邀明月
阅读(1715)
推荐(0) 编辑
Qt 渐变 QLinearGradient、 QConicalGradient、QRadialGradient
摘要:渐变有三种:QLinearGradient、QConicalGradient 、 QRadialGradient 它们都有一个QGradient父类 QGradient父类的常用公共函数有: 1 void QGradient::setSpread ( Spread method ); 2 //设置填
阅读全文
posted @
2021-01-12 16:46
一杯清酒邀明月
阅读(1643)
推荐(0) 编辑
Qt 加载HeightMap(高度图)构造3D地形图
摘要:Qt文档阅读笔记-加载HeightMap(高度图)构造3D地形图 QHeightMapSurfaceDataProxy:是Q3DSurface的一个基本代理类。 他是专门加载高度图。 高度图是没有X,Z轴的概念,所以在编程的时候要指定minXValue, maxXValue, minZValue,
阅读全文
posted @
2021-01-12 15:43
一杯清酒邀明月
阅读(1979)
推荐(0) 编辑
VisionPro内嵌脚本编译时显示:未定义类型“CogFindCircleTool”。未定义类型“CogToolResultConstants”
摘要:编译通不过的问题 错误如下错误。 原因是没有引用添加对应的dll文件。 引用办法。 有时候,如果你不知道引用dll是哪一个,可以考虑visionPro自带的演示程序。 然后添加引用命名空间就可以了: 1 Imports Cognex.VisionPro 2 Imports Cognex.Vision
阅读全文
posted @
2021-01-12 13:35
一杯清酒邀明月
阅读(595)
推荐(0) 编辑
VisionPro CogPMAlignTool
摘要:电子狗终于到了,可以学习一波了! 首先学习一下CogPMAlignTool; 简单的来说 就是训练一个图像 然后再在其他图像或者同一幅图像的其他位置去寻找该图像。 在这个过程中你可以得到 图像尺寸变化 角度变化 以及其他的综合因素。 本文选择实例 ——查找物体。 选择一个文件夹下的一堆图片; 主要思
阅读全文
posted @
2021-01-12 13:32
一杯清酒邀明月
阅读(877)
推荐(0) 编辑
VisionPro 卡尺原理
摘要:卡尺寸工具的应用范围 理想用于计量应用: 测量元件的宽度 测量元件之间的距离 常见的用处是测量边缘对子,和测量某个边线的点(当测量两个边线的点后,就可以测量点到点的距离) 勇哥试了一下测量边缘对子,如下图。 其参数中: 最大结果数要和边缘对子的数量一样,这个例子我测量的是每个ic的引脚宽度。 边缘对
阅读全文
posted @
2021-01-12 13:30
一杯清酒邀明月
阅读(1781)
推荐(0) 编辑
VisionPro 卡尺测量长度的例子
摘要:选择图片。 用两个卡尺寸,分别取底边与顶边。 然后用点到点的距离工具取距离,求出来没有标定之前是像素。 卡尺寸的参数。 卡尺的选择框,实心的箭头代表搜索方向。 由于程序中使用顶边与底边的起始点计算距离,因此要把起始点位置设置为一样,非则结果不对。 修改一下,让两者的x值一样。 这样改好后,结果是75
阅读全文
posted @
2021-01-12 13:28
一杯清酒邀明月
阅读(1216)
推荐(0) 编辑
VisionPro 自学帮助
摘要:好多刚入门的同行,在网上收索专业的指导视频也不多,有的而且收费,在碰到公司的一些老人不愿意多说苦于不太好交流提供以下几点方法,或许对新来的同行有些帮助 1,VisionPro 本身自带的帮助文档,里面有各个关于视觉工具的介绍 2.VisionPro 引用库里的一些XML文档也提供一些说明 3.Vi'
阅读全文
posted @
2021-01-12 12:01
一杯清酒邀明月
阅读(817)
推荐(0) 编辑
VisionPro Designer中使用Log4net实现日志功能
摘要:log4net是一个可以帮助程序员把日志信息输出到各种 不同目标的.net类库。它可以容易的加载到开发项目中,实现程序调试和运行的时候的日志信息输出,提供了比.net自己提供的debug类和trace 类的功能更多。在康耐视Designer中使用的方法如下: 1.引用程序集并添加命名空间 在“外部程
阅读全文
posted @
2021-01-12 11:52
一杯清酒邀明月
阅读(521)
推荐(0) 编辑
C#中四步轻松使用log4net记录本地日志的方法
摘要:在这里,记录我在项目中使用log4net记录本地日志的步骤。在不会之前感觉很难,很神秘,一旦会了之后其实没那么难。其实所有的事情都是一样的,下面我就分享一下我使用log4Net的经验。 第一步:首先从Visual Studio中的Nuget包管理中搜索下载 Log4Net dll文件 如下图: 选择
阅读全文
posted @
2021-01-12 11:50
一杯清酒邀明月
阅读(535)
推荐(1) 编辑
VisionPro开发之读取相机数据(C#)
摘要:在 Visiual Studio.NET 环境下通过VisionPro打开相机并获取图像的基本步骤如下:1.创建CogFrameGrabberGigEs对象,获取连接到图像采集卡的所有相机设备。2.通过CogFrameGrabberGigEs获取单个对象ICogFrameGrabber的引用,支持的
阅读全文
posted @
2021-01-12 11:46
一杯清酒邀明月
阅读(2428)
推荐(0) 编辑
VisionPro 坐标空间树(Coordinate Space Trees)
摘要:VisionPro中的每一幅图像都有自己的坐标空间树,即Coordinate Space Tree,坐标空间树由根空间(root space)与用户空间(user space )组成。在图像处理过程中,通过根空间与用户空间之间的坐标转换实现图像在不同坐标系下的转换,例如,当进行Blob分析时可能需要
阅读全文
posted @
2021-01-12 11:44
一杯清酒邀明月
阅读(1746)
推荐(0) 编辑
VisionPro CogResultsAnalysisTool工具将表达式的值转换为int、Double等数据类型输出
摘要:将下图所示的ExprA等表达式结果转换为Double类型并添加到输出终端Step1.在CogResultAnalysis工具上右键Step2.在弹出的MemberBrowser对话框中的Brower下拉菜单中选择ALL(unfiltered)选项。step3.按下图依次选择Result->Evalu
阅读全文
posted @
2021-01-12 11:43
一杯清酒邀明月
阅读(1261)
推荐(0) 编辑
VisionPro 脚本(一文读懂VisionPro脚本原理与使用方法)
摘要:一、脚本简介 1.1 VisionPro项目组成简介在介绍脚本之前先简单介绍一下VisionPro开发环境(QuickBuild)的项目结构,Job是QuickBuild工程的基本组成单位,一个QucikBuild工程至少含有一个Job,工程中所有的Job是并行结构,各个Job之间不会相互影响。每个
阅读全文
posted @
2021-01-12 11:42
一杯清酒邀明月
阅读(7710)
推荐(0) 编辑
VisionPro PatInspect(CogPatInspectTool使用方法)
摘要:一、PatInspect原理详解 1.PatInspect简介 PatInspect主要用于缺陷检测,例如印刷字符检测、部分缺失或者明暗变换、激光打标内容检测等,该检测方法对光照的稳定性要求较高,视野内的光照不均匀极易造成误判与过杀。通过将当前图像与“训练图像”对比,获取“原始差异图像”,再将“原始
阅读全文
posted @
2021-01-12 11:34
一杯清酒邀明月
阅读(1480)
推荐(0) 编辑
VisionPro ToolBlock输出添加复杂输出类型
摘要:VisionPro中ToolBlock工具允许用户添加系统默认(bool、int、double等)数据类型以及VisionPro自定义(CogImage8Grey、ICogImage等)数据类型,常见数据类型的添加入下图所示。但是,有时需要在ToolBlock输出端添加List等相对复杂的数据类型。
阅读全文
posted @
2021-01-12 11:32
一杯清酒邀明月
阅读(1116)
推荐(0) 编辑
VisionPro toolBlock与toolGroup的区别
摘要:在VisionPro中toolBlock与toolGroup都可以作为工具的容器,使项目结构更清晰。两者之间的不同主要有以下几点:1.添加输入输出以及数据链接方式不同。 在toolBlock工具块中,添加输入输出的方式比较灵活,可以在工具块上右键->addInput之后选择相应的类型添加;可以在to
阅读全文
posted @
2021-01-12 11:31
一杯清酒邀明月
阅读(838)
推荐(0) 编辑
VisionPro 标定与创建坐标系(Calibration and Fixturing)(二)
摘要:本文主要介绍Fixture创建的坐标系的意义以及CogFixture工具的使用方法。同Calibration一样,fixture同样创建一个新的坐标系,不同之处在于经过Calibration之后生成的是一个固定坐标系,而Fixture之后是一个“随动”的坐标系。此外,经过Calibration之后的
阅读全文
posted @
2021-01-12 11:30
一杯清酒邀明月
阅读(2332)
推荐(0) 编辑
VisionPro 标定与创建坐标系(Calibration and Fixturing)(一)
摘要:在VisionPro利用多个工具进行图像处理的过程中可能会根据实际需要创建多个坐标系,各个工具在对应的坐标系下进行处理与运算。在运行过程中创建的多个坐标都属于图像的坐标空间树,工具通过使用坐标空间树中不同坐标系获取图像的不同信息。标定(Calibration)和Fixturing(不知道该单词怎么翻
阅读全文
posted @
2021-01-12 11:28
一杯清酒邀明月
阅读(2728)
推荐(0) 编辑
VisionPro棋盘格标定测量实例
摘要:前几天有网友问我使用标定板如何测量,正好今天有时间,做一个简单的测量例子。需要使用到标定板,没有的可以使用A4打印一张,图样我就不提供了,自己用Excel或者CAD画一张即可。唯一需要注意的是,1:1打印!不然你不知道你画的实际距离。 第一步,打开VisionPro,使用图片资源工具image so
阅读全文
posted @
2021-01-12 11:12
一杯清酒邀明月
阅读(2876)
推荐(0) 编辑
VisionPro工业视觉的标定方法
摘要:工业视觉常用的几种标定方式。 计算像素比 有些时候我们需要的检测数据并不需要特别准确,并且手边没有其它标定工具,可以使用这种方法大概算一算每个像素对应多大距离。 找一个知道距离的物体,测出它的像素距离,像素比例=被测物体距离÷像素大小 相机固定--平台移动的标定 这种方式需要被测物体固定在可以改变位
阅读全文
posted @
2021-01-12 11:11
一杯清酒邀明月
阅读(2070)
推荐(0) 编辑
VisionPro (对相机进行标定)
摘要:今天来看看如何用visionpro对相机进行标定。 校正的工具叫做 CogCalibCheckerboard 看图 在选择棋盘格尺寸过、以及变形的类型 (如非线性畸变)直接抓取 加计算校正。这里的块尺寸就是你棋盘格一块的长多少mm,没有基准符号 要切换成none. 标定工具只是需要一次就可以记录了。
阅读全文
posted @
2021-01-12 10:57
一杯清酒邀明月
阅读(1888)
推荐(0) 编辑
VisualStudio2017添加visionPro控件
摘要:一定要添加路径C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies下的带controls的dll。添加到.NetFramework组件中 其他路径下的dll添加时visual studio会提示“无效”。
阅读全文
posted @
2021-01-12 10:37
一杯清酒邀明月
阅读(477)
推荐(0) 编辑
VS2019添加VisionPro控件
摘要:正常的安装流程一般是先安装好VS之后,再安装VisionPro.这样在安装VisionPro的过程中,会自动在VS中安装控件. 那么如果手抖顺序反了,就蛋疼了,打开VS会发现工具箱里没有控件... 另外,如果同时安装了vs2012和vs2019,安装VisionPro的时候就只会向VS2012安装控
阅读全文
posted @
2021-01-12 10:35
一杯清酒邀明月
阅读(1056)
推荐(0) 编辑
双线性插值的C/C++代码
摘要:双线性插值,英文也叫 Bilinear Interpolation 是个对数据非常不错拟合方法.可以想像成在二维网格下对X和Y方向上的两次插值.具体的公式什么的就不多说了 双线性插值 这个插值方法估计很多做研究的都需要用上(当然我不使用matlab), 于是我把公式翻译成C/C++函数, 欢迎使用.
阅读全文
posted @
2021-01-11 15:31
一杯清酒邀明月
阅读(2504)
推荐(0) 编辑
纯C图像缩放代码(二次线性插值)
摘要:1 /** 2 * @desc 二次线性插值公式 3 * P0 P2 4 * P1 P3 5 * 6 * pm0=(1-u)*(1-v); 7 * pm1=v*(1-u); 8 * pm2=u*(1-v); 9 * pm3=u*v; 10 * 11 * dst = P0*pm0 + P1*pm1 +
阅读全文
posted @
2021-01-11 14:17
一杯清酒邀明月
阅读(325)
推荐(0) 编辑
Qt qsort用法 完整版(解释了cmp)
摘要:用qsort快两年的时候了,却一直没有真正弄懂cmp函数的返回值1,-1,0的函数. 今天在做凸包时,郁闷了....所以请教了snoopy,终于弄懂了cmp返回值的意识: int cmp(const void *a, const void *b) 返回正数就是说 cmp 传入参数第一个要放在第二个后
阅读全文
posted @
2021-01-11 10:41
一杯清酒邀明月
阅读(3219)
推荐(0) 编辑
串口通信模块:串口基础知识
摘要:串行接口可以将接受来自CPU的并行数据字符,转换为连续的串行数据流发送出去。同时可将接收的串行数据流转换为并行的数据字符供给CPU的器件。一般完成这种功能的电路,称为串行接口电路。常用的RS-232 (ANSI-EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。可用于许多用途,比如连接鼠
阅读全文
posted @
2021-01-11 10:05
一杯清酒邀明月
阅读(1174)
推荐(0) 编辑
十大开源推荐系统简介
摘要:最近这两年推荐系统特别火,本文搜集整理了一些比较好的开源推荐系统,即有轻量级的适用于做研究的SVDFeature、LibMF、LibFM等,也有重 量级的适用于工业系统的 Mahout、Oryx、EasyRecd等。PS:这里的top 10仅代表oschina观点。 1. SVDFeature 上海
阅读全文
posted @
2021-01-11 09:52
一杯清酒邀明月
阅读(1377)
推荐(0) 编辑
C++ 双线性插值
摘要:双线性插值 原理:那么对于浮点数的坐标(x,y)满足(a<=x<a+1,b<=y<b+1),我们可以先分别求出c(x,b)和c(x,b+1):c(x,b) = c[a+1][b](x-a)+c[a][b](1+a-x);c(x,b+1) = c[a+1][b+1](x-a)+c[a][b+1](1+
阅读全文
posted @
2021-01-08 09:36
一杯清酒邀明月
阅读(1626)
推荐(0) 编辑
C++ 线性插值
摘要:函数功能:输入两个值,指定插值后数组长度,输出线性插值后的数组。 1 void test(double a, double b){ 2 cout << "section: " << a << " " << b << endl; 3 const int INSERTPOINTNUMBER = 10;
阅读全文
posted @
2021-01-08 09:34
一杯清酒邀明月
阅读(2921)
推荐(0) 编辑
VTK Pipeline管线执行模型
摘要:1.管线执行模性 请求是VTK执行管线的一个基本操作,一个管线执行模型由多个请求共同完成。管线建立完毕,当显示调用一个Filter的Update()函数时,该Filter的vtkExecutive子类执行对象会产生一系列请求,并在管线中传递。 例如,一个Writer对象执行Update()时,会调用
阅读全文
posted @
2021-01-07 09:01
一杯清酒邀明月
阅读(554)
推荐(0) 编辑
VTK VTK管线机制_信息对象类VTKInformation
摘要:1.VTK管线机制 VTK中通过管线机制来实现组合各种算法处理数据。每一种算法是一个Filter,多个Filter连接在一起形成VTK管线。每个Filter可以分为两个组成部分:一个是算法对象,继承自vtkAlgrithm,主要负责处理输入的数据和信息;另一个是执行对象,继承自vtkExecute(
阅读全文
posted @
2021-01-07 09:00
一杯清酒邀明月
阅读(1508)
推荐(0) 编辑
VTK VTK开发基础_vtkObject类深入分析
摘要:1.前言 相比于vtkObjectBase,我们接触更多的是vtkObject类。 vtkObjectBase类主要实现了引用计数,因此vtkObject及其相关子类都继承了该特性。 与此同时,vtkObject中实现了一个在VTK中是用非常广泛的观察者/命令模式,该机制可以方便地处理消息响应,例如
阅读全文
posted @
2021-01-07 08:57
一杯清酒邀明月
阅读(894)
推荐(0) 编辑
VTK VTK开发基础_智能指针与引用计数
摘要:1.引用计数 VTK经过多年的开发与维护,已经形成了一套稳定的框架和开发规则。因此,了解这些规则和框架是定制VTK类的基础,这其中用到了大量面向对象的设计模式,例如对象工程模式、观察者/命令模式;还有就是当下非常流行的引用计数与智能指针等高级内存管理等。内存管理在大型的工程中是非常重要的内容,如果不
阅读全文
posted @
2021-01-07 08:56
一杯清酒邀明月
阅读(731)
推荐(0) 编辑
VTK 交互与拾取_单位拾取
摘要:1.单位拾取 示例代码: 1 #include <vtkAutoInit.h> 2 VTK_MODULE_INIT(vtkRenderingOpenGL) 3 VTK_MODULE_INIT(vtkInteractionStyle) 4 VTK_MODULE_INIT(vtkRenderingFre
阅读全文
posted @
2021-01-07 08:53
一杯清酒邀明月
阅读(1305)
推荐(1) 编辑
VTK 交互与拾取_点拾取
摘要:1.拾取 选择拾取是人机交互过程的一个重要功能。 一个最经典的例子就是,在玩3D游戏时,场景中可能会存在多个角色,有时需要用鼠标来选择所要控制的角色,这就要用到拾取功能。 另外,在某些三维图形的编辑软件中,经常需要编辑其中的一个点、一个面片或者一个局部区域,这也需要通过拾取功能来完成。 VTK中定义
阅读全文
posted @
2021-01-07 08:51
一杯清酒邀明月
阅读(2966)
推荐(0) 编辑
VTK 交互部件_分割/配准类Widget与其他Widget
摘要:1.分割/配准交互部件 图像分割与配准是数字图像处理技术两大主要的应用领域,特别是在医学图像处理中。 著名的医学图像分割与配准工具包ITK(Insight Segmentation & Registration Toolkit)的重要应用领域就是图像分割与配准。ITK实现了许多经典的分割、配准算法,
阅读全文
posted @
2021-01-07 08:50
一杯清酒邀明月
阅读(890)
推荐(0) 编辑
VTK 交互部件_标注类Widget的应用
摘要:1.标注类Widget 在可视化程序中,经常会对某个对象做一些标注说明,比如,在医学图像诊断中,常常会手动标注出被诊断为肿瘤的区域或者其他病变区域,并用文字进行标注。 VTK中,与标注相关的Widget如下表所示: vtkTextWidget:在渲染场景中生成一串标识文本,可以随意调整该文本在渲染场
阅读全文
posted @
2021-01-07 08:49
一杯清酒邀明月
阅读(2077)
推荐(0) 编辑
VTK 交互部件_测量类Widget的应用
摘要:1.与测量类相关的主要Widget 与测量类相关的主要Widget如下: vtkDistanceWidget:用于在二维平面上测量两点之间的距离。 vtkAngleWidget:用于在平面的角度测量。 vtkBiDimensionalWidget:用于测量二维平面上任意两个正交方向的轴长。 2.创建
阅读全文
posted @
2021-01-07 08:48
一杯清酒邀明月
阅读(1448)
推荐(0) 编辑
VTK 交互部件_Widget应用综述
摘要:1.交互器样式遇到的难题 交互器样式(如vtkInteractorStyleImage)主要是根据不同的键盘、鼠标等消息来控制相机(vtkCamera)/Actor等相关参数,从而达到了交互的目的! 然而,在渲染场景中,这些交互器样式是没有表达实体的。也就是说,在交互之前,我们(用户)必须知道那些键
阅读全文
posted @
2021-01-07 08:45
一杯清酒邀明月
阅读(1329)
推荐(0) 编辑
VTK 交互与Widget_观察者/命令模式
摘要:1.前言 一个强大的可视化系统不仅需要强大的数据处理能力,也需要方便易用的交互功能。图形处理软件ParaView(hhttp://www.paraview.org)、德国癌症研究中心研发的MITK(http://www.mitk.org)等开源软件系统都提供了强大的交互功能,作为ParaView、M
阅读全文
posted @
2021-01-07 08:44
一杯清酒邀明月
阅读(1195)
推荐(0) 编辑
VTK 体绘制讨论_光照&阴影、VTKLODProp3D
摘要:1.光照与阴影 通过VTKVolumeProperty可以设置体绘制阴影效果(Shading)。阴影效果主要受环境光系数、散射光系数、反射光系数和高光强度四个参数影响。 vtkVolumeProperty::SetAmbient()设置环境光系数 vtkVolumeProperty::SetDiff
阅读全文
posted @
2021-01-07 08:40
一杯清酒邀明月
阅读(1004)
推荐(0) 编辑
VTK 体绘制讨论_颜色传输函数
摘要:1.颜色传输函数 颜色传输函数与不透明度传输函数的使用类似,二者的不同之处在于颜色传输函数是将一个标量值映射为颜色值。这个颜色值可以是RGB值,也可以是HSV值。 VTK颜色传输函数采用VTKColorTransferFunction类实现,其函数为: 1 int AddRGBPoint(doubl
阅读全文
posted @
2021-01-07 08:38
一杯清酒邀明月
阅读(1189)
推荐(0) 编辑
VTK 体绘制讨论_梯度不透明度传输函数
摘要:1.梯度不透明度函数 梯度不透明度函数是将梯度模值映射为一个不透明度乘子,从而增强过渡区域的显示效果。 该函数也是使用vtkPiecewiseFunction类。例如,在不同材料的临界区域,如空气到软组织,或者软组织到骨头的临界区,梯度值会比较大,而材料的内部梯度值则会相对比较小。 vtkVolum
阅读全文
posted @
2021-01-07 08:36
一杯清酒邀明月
阅读(604)
推荐(0) 编辑
VTK 体绘制讨论_不透明度传输函数
摘要:1.vtkVolume vtkVolume类似于几何渲染中的vtkActor,用于表示渲染场景中的对象。除了存储基本变换信息(平移、旋转、缩放等),其内部还存储了两个重要对象。这两个对象分别是vtkAbstractVolumeMapper对象和vtkVolumeProperty对象。 1.1 voi
阅读全文
posted @
2021-01-07 08:33
一杯清酒邀明月
阅读(1366)
推荐(0) 编辑
VTK 体绘制裁剪_Cripping技术
摘要:1.基于Clipping的体绘制裁剪技术 Clipping技术支持VTKImageData和VTKUntructuredGrid数据类型。该功能由vtkAbstractMapper3D类提供,对于那些使用基于OpenGL的硬件裁剪技术的Mapper类,如vtkPolyDataMapper、vtkVo
阅读全文
posted @
2021-01-07 08:32
一杯清酒邀明月
阅读(711)
推荐(0) 编辑
VTK 体绘制裁剪_Cropping技术
摘要:1.裁剪 对于一些体积比较大,结构比较复杂的体数据进行体绘制的渲染效果难以展示其内部细节,需要用到裁剪技术来渲染部分数据。vtkVolumeMapper类中提供了两种裁剪技术,分别为Cropping和Clipping。 Cropping技术只支持VTKImageData数据的裁剪。该方法在每个坐标轴
阅读全文
posted @
2021-01-07 08:30
一杯清酒邀明月
阅读(1242)
推荐(0) 编辑
VTK 纹理映射体绘制_三维纹理映射
摘要:1.三维纹理映射 目前市面上的能多先科都是支持三维纹理映射的。利用三维纹理映射,将体数据映射至一组与视图平面平行的多边形,避免了二维纹理映射方法中因为纹理图像的切换造成的瑕疵。VTK中三维纹理映射体绘制方法由vtkVolumeTexture3D类实现,使用方法与二维纹理映射体绘制方法一致。(实时渲染
阅读全文
posted @
2021-01-07 08:29
一杯清酒邀明月
阅读(721)
推荐(0) 编辑
VTK 纹理映射体绘制_二维纹理映射
摘要:1.纹理映射体绘制 基于软件实现的光线投影体绘制算法计算量非常大,不利于进行实时渲染。因此,目前体绘制经常使用图形硬件利用纹理映射来加速。 其主要原理是将三维体数据作为纹理装载入硬件缓存中,利用硬件来实现插值以及图像合成操作,以提高绘制效率。 基于图形硬件三维纹理功能的体绘制技术,主要是利用硬件的三
阅读全文
posted @
2021-01-07 08:28
一杯清酒邀明月
阅读(652)
推荐(0) 编辑
VTK 体绘制_固定点光线投影体绘制与GPU加速光线投影体绘制
摘要:1.固定点光线投影算法 vtkFixedPointVolumeRayCastMapper是一个较好的vtkVolumeRayCastMapper的替代者。该类能够实现基于Alpha合成的体绘制方法和最大密度投影体绘制方法,能够支持任意类型带的医院或者独立多元数据。 例如,当输入为二元独立数据时,第一
阅读全文
posted @
2021-01-07 08:26
一杯清酒邀明月
阅读(902)
推荐(0) 编辑
VTK 体绘制_光线投影+最大密度投影+等值面法
摘要:1.vtkVolumeMapper vtkVolumeMapper是所有体绘制Mapper类的虚基类,提供接口函数,并由其子类实现具体功能。该类的继承关系如下图所示: 应该掌握一些常用的体绘制类。 2.光线投射:vtkVolumeRayCastMapper 光线投射法是最常用的体绘制方法。它是一种基
阅读全文
posted @
2021-01-07 08:25
一杯清酒邀明月
阅读(1705)
推荐(0) 编辑
VTK 体绘制_体绘制管线&图形渲染管线
摘要:1.几何渲染与体绘制 1.1 几何渲染 前面练习的渲染技术都是几何渲染技术。所谓的几何渲染技术,就是通过绘制几何图元(顶点、线段、面片等)来渲染数据,例如:绘制图像需要在空间中建立一个四边形图元,然后以纹理映射的方式将该图像贴图到该图元上进行渲染;而三维模型的绘制通常会分解为一系列的多边形面片进行绘
阅读全文
posted @
2021-01-06 16:49
一杯清酒邀明月
阅读(1286)
推荐(0) 编辑
VTK 图形基本操作进阶_纹理映射
摘要:1.纹理映射 纹理映射是将纹理空间中的纹理像素映射到屏幕空间中的像素的过程。纹理生成过程实质上是将所定义的纹理映射为某种三维物体表面的属性,并参与后续的光照计算。在三维图形中,纹理映射运用的十分广泛,尤其是描述具有真实感的物体。 实现纹理映射主要是建立纹理空间与模型空间、模型空间与屏幕空间之间的映射
阅读全文
posted @
2021-01-06 16:47
一杯清酒邀明月
阅读(1262)
推荐(1) 编辑
VTK 图形基本操作进阶_点云配准技术(迭代最近点ICP算法)
摘要:1.Iterative Closest Points算法 点云数据配准最经典的方法是迭代最近点算法(Iterative Closest Points,ICP)。ICP算法是一个迭代的过程,每次迭代中对于源数据点P找到目标点集Q中的最近点,然后给予最小二乘原理求解当前的变换矩阵T。通过不断迭代迭代直至
阅读全文
posted @
2021-01-06 16:45
一杯清酒邀明月
阅读(1936)
推荐(1) 编辑
VTK 图形基本操作进阶_点云配准技术(LandMark标记点算法和坐标系显示方法)
摘要:1.点云配准 在计算机逆向工程中,通过三维扫描等实物数字化技术可以获取各种点云数据。但是受到测量环境和设备的影响,再一次测量的情况下,难以获取实物整体的点云数据,因此需要多次从不同角度进行测量。但不同的测量数据之间可能会存在平移错误或旋转错位等问题。这就需要使用点云配准技术来对测量点云数据进行局部配
阅读全文
posted @
2021-01-06 16:37
一杯清酒邀明月
阅读(2275)
推荐(0) 编辑
VTK 图形基本操作进阶_表面重建技术(三维点云曲面重建)
摘要:1.点云重建 虽然Delaunay三角剖分算法可以实现网格曲面重建,但是其应用主要在二维剖分,在三维空间网格生成中遇到了问题。因为在三维点云曲面重建中,Delaunay条件不在满足,不仅基于最大最小角判断的对角线交换准则不在成立,而且基于外接圆判据的Delaunay三角化也不能保证网格质量。 VTK
阅读全文
posted @
2021-01-06 16:35
一杯清酒邀明月
阅读(2681)
推荐(0) 编辑
VTK 图形基本操作进阶_表面重建技术(等值面提取)
摘要:1.等值面提取 等值面(线)提取是一种常用的可视化技术,常应用于医学、地质、气象等领域。例如,在医学图像处理中,由于CT、MRI等图像分辨率越来越高,虽然体绘制技术可以清晰地对数据内部结构进行可视化,但是其计算量和效率却制约了其使用。此时可通过等值面提取技术,仅提取感兴趣的一个或者几个组织轮廓,并生
阅读全文
posted @
2021-01-06 16:34
一杯清酒邀明月
阅读(2033)
推荐(0) 编辑
VTK 图形基本操作进阶_表面重建技术(三角剖分)
摘要:1.表面重建 通过三维扫描仪所获取的实际物体的空间点云数据仅仅表示物体的几何形状,而无法表达其内部的拓扑结构。拓扑结构对于实际图形处理以及可视化具有更重要的意义。因此,这就需要利用表面重建技术奖点云数据转换成面模型,通常为三角网格模型。除此之外,基于图像数据的面绘制技术也是一种应用非常广泛的表面重建
阅读全文
posted @
2021-01-06 16:32
一杯清酒邀明月
阅读(2890)
推荐(0) 编辑
VTK 图形基本操作进阶_多分辨率策略(模型细化的三种方法)
摘要:1.模型细化 vtk中实现网格细化的累有vtkLinearSubdivisionFilter、vtkLoopsubdivisionFilter、vtkButterflySubdivisionFilter。这三个类都继承自vtkInterpolatingSubdivisionFilter。具体的类的继
阅读全文
posted @
2021-01-06 16:30
一杯清酒邀明月
阅读(796)
推荐(0) 编辑
VTK 图形基本操作进阶_多分辨率策略(模型抽取的三种方法)
摘要:1.多分辨率处理策略 模型抽取(Decimation)和细化(Subdivision)是两个相反的操作,是三角形网格模型多分辨处理中的两个重要操作。使用这两个操作可以在保持模型拓扑结构的同时,得到不同分辨率的网格模型。模型抽取的作用是减少模型中的点数据和单元数据,便于模型的后续处理与交互渲染,这类似
阅读全文
posted @
2021-01-06 16:29
一杯清酒邀明月
阅读(1053)
推荐(1) 编辑
VTK 图形基本操作进阶_连通区域分析
摘要:1.连通区域分析 许多图形数据中,并非只包含一个对象(连通区域)。而在处理这些图形数据时,有时需要对每一个对象单独处理或者让其单独显示。比如,利用MarchingCube方法提取三维图像中的等值面,得到的结果往往是存在多个连通的对象区域,这是就需要对图形数据做连通区域分析,提取每个连通区域并计算其属
阅读全文
posted @
2021-01-06 16:26
一杯清酒邀明月
阅读(1138)
推荐(0) 编辑
VTK 图形基本操作进阶_网格模型的特征边 与 封闭性检测
摘要:1.封闭性检测 由于受原始数据、重建方法的限制,得到的网格模型并不是封闭的。有时为了显示或者处理某些要求,需要网格必须是封闭的。 封闭性网格应该比较好理解,比如一个球形网格。 1.1网格模型边的分类 之前也有提到过边界边的概念:如果一条边只被一个多边形包含,那么这条边就是边界边。是否存在边界边是检测
阅读全文
posted @
2021-01-06 16:25
一杯清酒邀明月
阅读(1747)
推荐(0) 编辑
VTK 图形基本操作进阶_网格平滑(点云的曲面重建技术)
摘要:1.网格平滑 现代扫描技术的发展使得获取点云数据不再困难,通过曲线重建技术可以获取表面网格来表示各种复杂的实体。但是点云数据中往往存在噪声,这样得到的重建网格通常都需要进行平滑处理。 拉普拉斯平滑是一种常用的网格平滑算法。该方法的原理比较简单,如下图所示: 将每个点用其邻域点的中心来代替。通过不断地
阅读全文
posted @
2021-01-06 16:23
一杯清酒邀明月
阅读(2649)
推荐(1) 编辑
VTK 图形基本操作进阶_符号化操作与模型区率计算
摘要:1.符号化Glyphing再谈 上一篇帖子提到一个事,就是用符号化操作显示单元的法向量。 模型的法向量数据是向量数据,因此法向量不能像前面讲到的通过颜色映射来显示。但是可以通过符号化(Glyphing)技术将法向量图形化显示。Glyphing是一种基于图形的可视化技术,这些图像可以是简单的基本图形,
阅读全文
posted @
2021-01-06 16:22
一杯清酒邀明月
阅读(1266)
推荐(0) 编辑
VTK 图形基本操作进阶_法向量计算
摘要:1.点法向量和单元法向量 三维平面的法向量是指垂直于该平面的三维向量。曲面在某点P处的法向量为垂直于该点切平面的向量。对于一个网格模型,其每一个点和单元都可以计算一个法向量,在三维计算机图形学中法向量一个重要应用是光照和阴影计算。对于网格模型,模型是有一定数量的面片(单元)来逼近的,面片越多,则模型
阅读全文
posted @
2021-01-06 16:20
一杯清酒邀明月
阅读(1626)
推荐(0) 编辑
VTK 图形基本操作进阶_三角网格体积、表面积、测地距离、包围盒
摘要:1.基本图形操作意义 图形处理,比如图形平滑、多分辨率分析、特征提取等都离不开一些基本的图形操作。掌握这些基本的图形操作有助于理解和深入学习图形处理和分析方法。 VTK中提供了多种图形的基本操作,其中最简单的是点的欧氏距离计算,可以使用vtkMath进行计算,也可以直接计算向量的模。一些图元类提供了
阅读全文
posted @
2021-01-06 16:19
一杯清酒邀明月
阅读(2482)
推荐(0) 编辑
VTK 图形进阶_vtkPolyData属性数据
摘要:1.从图形着色说起 前一个实验显示结果中的图像是白色的,而图形颜色与vtkPolyData属性数据息息相关。由于并未指定任何颜色和属性数据,因此在显示时默认以白色显示。 属性数据包括点属性和单元属性。可以为vtkPolyData的点数据和单元数据分别指定属性数据。 属性数据可以是标量,如点的曲率;可
阅读全文
posted @
2021-01-06 16:05
一杯清酒邀明月
阅读(3393)
推荐(0) 编辑
VTK 图形进阶_vtkPolyData数据源讨论与数据创建
摘要:1.VTKPolyData源数据总结 1之前的实例中,我们利用VTKConeSource源数据创建了一个棱锥。实际上VTK内部提供可以写数据源类来快速获取简单的图形数据。下面给出了最常见的几种VTKPolyData数据源类: 2.vtkPolyData数据的创建 前面多采用图像或者VTK合成源数据进
阅读全文
posted @
2021-01-06 16:03
一杯清酒邀明月
阅读(774)
推荐(0) 编辑
VTK 图形进阶_vtkPolyData数据生成与显示
摘要:1.VTK图像处理引言 图像数据的应用非常广泛,最贴近日常生活的应用是3D游戏,其中每个角色的模型、场景等都是图形数据。当然,游戏仅仅是图像数据的一个应用点。图形在CAD(计算机辅助设计)、影视、医学、地质、气象数据建模等领域中均有着广泛的应用。vtkPolyData是VTK中常用的数据结构之一,可
阅读全文
posted @
2021-01-06 16:01
一杯清酒邀明月
阅读(998)
推荐(0) 编辑
VTK 频域处理_高通滤波(理想+巴特沃兹)
摘要:1.理想高通滤波器 高通滤波与低通滤波正好相反,是频域图像的高频部分通过而抑制低频部分。在图像中图像的边缘对应高频分量,因此高通滤波的效果是图像锐化。同样最简单的高通滤波器是理想高通滤波器。通过设置一个频率阈值,将高于该阈值的频率部分通过,而低于阈值的低频部分设置为0。 VTK中理想高通滤波的实例如
阅读全文
posted @
2021-01-06 15:54
一杯清酒邀明月
阅读(641)
推荐(0) 编辑
VTK 频域处理_低通滤波(理想+巴特沃兹)
摘要:1.低通滤波器 低通滤波是将频域图像中的高频部分滤除而通过低频部分。图像的边缘和噪声对应于频域图像中的高频部分,而低通滤波的作用即是减弱这部分的能量,从而达到图像平滑去噪的目的。 2.理想低通滤波器 最简单的低通滤波器是理想低通滤波器,基本思想是给定一个频率阈值,将高于该阈值的所有部分设置为0,而低
阅读全文
posted @
2021-01-06 15:52
一杯清酒邀明月
阅读(648)
推荐(0) 编辑
VTK 频域处理_快速傅里叶变换及其反变换
摘要:1.图像频域处理的意义 在图像处理和分析中,经常会将图像从图像空间转换到其他空间中,并利用这些空间的特点进行对转换后图像进行分析处理,然后再将处理后的图像转换到图像空间中,这称之为图像变换。 在一些图像处理和分析中通过空间变换往往会取得更有效的结果。图像频域处理是指将图像从图像空间转换到频域空间进行
阅读全文
posted @
2021-01-06 15:50
一杯清酒邀明月
阅读(576)
推荐(0) 编辑
VTK 图像平滑_各向异性滤波
摘要:1.各向异性扩散滤波 高斯平滑方法在平滑噪声的同时,模糊了图像的重要边缘图像。 各向异性滤波是一种基于偏微分方程的滤波技术,建立于热量的各向异性扩散理论。 各向异性滤波在图像的平坦区域选择大尺度平滑,而边缘区域则选择小尺度的平滑,在抑制噪声的同时保持了图像的边缘信息。 vtkImageAnisotr
阅读全文
posted @
2021-01-06 15:46
一杯清酒邀明月
阅读(591)
推荐(0) 编辑
VTK 图像平滑_中值滤波器
摘要:1.中值滤波 vtkImageHybridMedian2D实现了对二维图像的中值滤波。其实现原理是,采用一个5x5的模板,逐次将模板中心对应于图像的每个像素上,将模板图像覆盖的像素的中值作为当前像素的输出值。 1 #include <vtkAutoInit.h> 2 VTK_MODULE_INIT(
阅读全文
posted @
2021-01-06 15:45
一杯清酒邀明月
阅读(252)
推荐(0) 编辑
VTK 图像平滑_高斯滤波器
摘要:1.高斯滤波 高斯平滑的原理类似于均值滤波。均值滤波模板的系数都是一样的,而高斯平滑则是需要根据像素与模板中心的距离来定义权重。权重的计算方法是采用高斯分布,离中心越远,权重越小。 下面是一个利用Gauss滤波进行图像平滑的实例: 1 #include <vtkAutoInit.h> 2 VTK_M
阅读全文
posted @
2021-01-06 15:44
一杯清酒邀明月
阅读(466)
推荐(0) 编辑
VTK 图像平滑_均值滤波器
摘要:1.图像平滑 图像平滑常用于图像的预处理中,如计算梯度时先对图像进行平滑处理,可以减少噪声对梯度的影响。图像平滑一般是通过模板卷积运算实现。模板可以看做是一个大小为nxn的小图像,例如3x3,5x5等等,模板的每个像素都对应一个系数值。模板卷积运算的过程是首先将模板中心依次与图像每个像素重合,通过模
阅读全文
posted @
2021-01-06 15:43
一杯清酒邀明月
阅读(399)
推荐(0) 编辑
VTK 边缘检测_Laplace算子
摘要:1.拉普拉斯算子 拉普拉斯算子是一个二阶边缘算子,即梯度的散度。拉普拉斯算子的实现也是通过模板实现。常用的拉普拉斯模板定义如下: 拉普拉斯算子计算图像的二阶导数,对于图像噪声比较敏感。拉普拉斯算子的结果为标量,表示边缘的宽度。但是它常产生双像素宽边缘,而且不能提供方向信息,因此较少直接用于边缘检测。
阅读全文
posted @
2021-01-06 15:36
一杯清酒邀明月
阅读(431)
推荐(0) 编辑
VTK 边缘检测_Canny算子
摘要:1.Canny算子 Canny算子是John Canny于20世纪80年代提出的一种多级边缘检测算法。John Canny研究了最优边缘的特性,即检测到的边缘要尽可能跟实际的边缘接近并尽可能的多,同时,要尽量降低噪声对边缘检测的干扰。其计算步骤如下1)对源图像进行高斯平滑以消除图像中噪声2)采用差分
阅读全文
posted @
2021-01-06 15:34
一杯清酒邀明月
阅读(582)
推荐(0) 编辑
VTK 边缘检测_Sobel算子
摘要:1.Sobel算子用于提取图像边缘 Sobel算子也是一种常用的梯度算子。Sobel算子计算稍微复杂,它采用3x3的模板。计算时模板在图像上移动,并在每个位置上计算对应中心像素的梯度值。 VTK中vtkSobel2D计算图像的sobel算子,使用代码如下: 1 #include <vtkAutoIn
阅读全文
posted @
2021-01-06 15:33
一杯清酒邀明月
阅读(302)
推荐(0) 编辑
VTK 边缘检测_梯度算子
摘要:1.梯度算子提取图像边缘 图像中不连续的灰度值会产生边缘,图像的边缘检测是基于边界的图像分割方法,如分水岭算法,通常是分割原图的梯度图像,梯度实际上也是反应的图像边缘信息。图像边缘一般常用图像一阶导数和二阶导数来检测。 梯度算子对应于图像一阶导数。图像一阶导数计算一般是通过差分运算来近似的。VTK中
阅读全文
posted @
2021-01-06 15:32
一杯清酒邀明月
阅读(396)
推荐(0) 编辑
VTK 图像二值化_阈值法
摘要:1.阈值法实现图像二值化操作 二值图像和label图像是图像分割中经常用到的两种图像。 二值图像的每个像素只有两种可能的取值,例如0或者255。通常0代表图像的背景,而255代码图像前景。图像二值化是最简单的图像分割模型。设置一个灰度阈值,将图像中阈值以下的像素值设置为背景,阈值以上的像素值设置为前
阅读全文
posted @
2021-01-06 15:31
一杯清酒邀明月
阅读(905)
推荐(0) 编辑
VTK 图像重采样_降采样和升采样技术
摘要:1.VTK中的图像重采样实现 图像重采样是指对采样后形成的由离散数据组成的数字图像按所需的像元位置或像元问距重新采样,以构成几何变换后的新图像。重采样过程本质上是图像恢复过程,它用输入的离散数字图像重建代表原始图像二维连续函数,再按新的像元间距和像元位置进行采样。其数学过程是根据重建的连续函数(曲面
阅读全文
posted @
2021-01-06 15:30
一杯清酒邀明月
阅读(920)
推荐(0) 编辑
VTK 图像统计_彩色直方图计算
摘要:1.彩色图像直方图 彩色图像由于内部有三个通道,不能直接计算直方图,需要提取RGB三个通道数据,分别计算直方图。每个通道计算直方图的方法与灰度图像直方图计算方法一致。 实例代码如下: 1 #include <vtkAutoInit.h> 2 VTK_MODULE_INIT(vtkRenderingO
阅读全文
posted @
2021-01-06 15:29
一杯清酒邀明月
阅读(479)
推荐(0) 编辑
VTK 图像统计_灰度直方图计算
摘要:1.灰度图像直方图 直方图统计是图像处理中的一个非常重要的操作。VTK中实现直方图统计功能的filter是vtkImageAccumulate。其将每个组分的数值范围划分为离散的间隔,然后统计每个灰度间隔上的像素数目。vtkImageAccumulate输入和输出都是vtkImageData类型,因
阅读全文
posted @
2021-01-06 15:28
一杯清酒邀明月
阅读(977)
推荐(0) 编辑
VTK 图像基本操作_三维图像切片交互提取(回调函数、观察者-命令模式)
摘要:1.鼠标滑动提取三维图像切片 学习三维图像切面的提取后,我们可以实现一个稍微复杂的程序——通过滑动鼠标来切换三维图像切片,这也是医学图像处理软件中一个很基本的功能。实现该功能难点是怎样在VTK中控制鼠标来实时提取图像切片。我们采用观察者/命令(Observer/Command)模式机制来实现。 VT
阅读全文
posted @
2021-01-06 15:25
一杯清酒邀明月
阅读(1813)
推荐(0) 编辑
VTK 图像基本操作_三维图像切片提取
摘要:1.三维图像切片提取 切片是指三维图像中的一个切面对应的图像。切面可以是过图像内部一点且平行于XY、YZ、XZ平面的平面,也可以是任意的过三维图像内部一点任意方向的平面。通过提取切片可以方便的浏览和分析图像内部组织结构,是医学图像浏览软件中的一个重要的功能。在VTK中vtkImageReslice类
阅读全文
posted @
2021-01-06 15:24
一杯清酒邀明月
阅读(2495)
推荐(0) 编辑
VTK 图像基本操作_图像子块提取(特征区域提取)
摘要:1.提取感兴趣区域 感兴趣区域(Volum of Interest,VOI)是指图像内部的一个子区域。在VTK中vtkExtractVOI类实现由用户指定的区域范围提取图像的子图像。该Filter的输入和输出都是一个vtkImageData,因此其结果可以直接作为图像保存。 其示例代码如下所示: 1
阅读全文
posted @
2021-01-06 15:22
一杯清酒邀明月
阅读(846)
推荐(0) 编辑
VTK 图像基本操作_单颜色通道图像合成彩色
摘要:1.三张灰度图像合成彩色图 我们可以提取彩色的图像的各个颜色分量,那么同样也可以将灰度图像合并成为一个彩色图像。VTK中提供vtkImageAppendComponents类来合成彩色图像,其输入需要提供三个灰度图像。 下面实例: 1 #include <vtkAutoInit.h> 2 VTK_M
阅读全文
posted @
2021-01-06 15:21
一杯清酒邀明月
阅读(452)
推荐(0) 编辑
VTK 图像基本操作_灰度图像映射成伪彩色图像(查表法)
摘要:1.查表法伪彩图映射 图像彩色映射的原理是首先生成一个颜色查找表,然后根据图像的一个标量值向颜色查找表中查找对应的颜色,并用新颜色值替代原来的像素值。VTK中vtkImageMapToColors负责图像彩色映射,vtkLookUpTable负责生成颜色查找表。 下面代码说明了怎样进行彩色映射: 1
阅读全文
posted @
2021-01-06 15:19
一杯清酒邀明月
阅读(964)
推荐(0) 编辑
VTK 图像基本操作_彩色图像成分提取
摘要:1.彩色图像RGB成分提取 VTK中利用vtkImageExtractComponents可以方便的提取出彩色图像的各个颜色分量,该类的使用比较简单,只需要设置要提取的分量序号即可。下面代码说明了怎样提取彩色图像的某个颜色分量。 1 #include <vtkAutoInit.h> 2 VTK_MO
阅读全文
posted @
2021-01-06 15:18
一杯清酒邀明月
阅读(258)
推荐(0) 编辑
VTK 图像基本操作_彩色图像生成灰度图像
摘要:1.灰度图像映射 vtkImageLuminance负责将一个RGB彩色图像转换为一个单组分的灰度图像。映射公式如下: luminance = 0.3*R + 0.59*G + 0.11*B 该公式中,R为输入图像的第一分量(红色),G为第二分量(绿色),B为第三分量(蓝色)。这个计算结果计算一个R
阅读全文
posted @
2021-01-06 15:17
一杯清酒邀明月
阅读(455)
推荐(0) 编辑
VTK 图像基本操作_图像类型转换
摘要:1.vtkImageCast 图像数据类型转换在数字图像处理中会被频繁地用到。一些常用到的图像算子(例如梯度算子)在计算时出于精度的考虑,会将结果存储为float或者double类型。但是在图像显示时,一般需要图像为unsigned char类型。 VTK中最常用到的是VTKImageCast类型。
阅读全文
posted @
2021-01-06 15:12
一杯清酒邀明月
阅读(672)
推荐(0) 编辑
VTK 图像基本操作_图像像素值的访问与修改
摘要:1.直接访问图像像素(索引法) 1 #include <vtkAutoInit.h> 2 VTK_MODULE_INIT(vtkRenderingOpenGL); 3 4 #include <vtkSmartPointer.h> 5 #include <vtkImageData.h> 6 #incl
阅读全文
posted @
2021-01-06 15:09
一杯清酒邀明月
阅读(1067)
推荐(0) 编辑
VTK 图像基本操作_图像信息的访问与修改(vtkImageChangeInformation)
摘要:1.类vtkImageChengeInformation用于图像信息修改 vtkImageData中提供了多个Set函数用于设置图像的基本信息。当对一个管线的输出修改图像信息后,如果管线重新Update,那么这些修改都会恢复回原来的值。而vtkChangeImageInformation可以作为管线
阅读全文
posted @
2021-01-06 15:07
一杯清酒邀明月
阅读(592)
推荐(0) 编辑
VTK 图像基本操作_图像信息的访问与修改(vtkImageData)
摘要:1.利用vtkImageData实现图像信息的访问与修改 vtkImageData中提供了多个函数用于访问或者获取图像的基本信息,这些函数通常使用Set或者Get加上相应的信息名的形式,例如获取图像维数的方法定义为GetDimensions()。 2.实验程序及运行结果 1 #include <vt
阅读全文
posted @
2021-01-06 15:05
一杯清酒邀明月
阅读(1023)
推荐(0) 编辑
VTK 图像处理_窗口分割和图像融合(Viewport&vtkImageBlend)
摘要:1.前言 前面演示的例子都是在一个窗口中显示一个图像。但是在常见的图像处理软件中,经常会遇到在一个窗口中显示多个图像,这就会用到图像融合技术。图像融合利用图像的alpha通道和不透明度来实现。VTK中vtkImageBlend实现图像的融合。 vtkImageBlend可以接收多个图像输入,输出为融
阅读全文
posted @
2021-01-06 14:59
一杯清酒邀明月
阅读(1355)
推荐(0) 编辑
VTK 图像处理_显示(vtkImageViewer2 & vtkImageActor)
摘要:1.vtkImageViewer2用于图像显示实例分析 在VTK早期版本中,提供了vtkImageViewer类来显示图像。随着版本的发展,目前vtkImageViewer2代替了vtkImageViewer进行图像显示。vtkImageViewer2中封装了VTK图像显示的管线,包括vtkActo
阅读全文
posted @
2021-01-06 14:52
一杯清酒邀明月
阅读(828)
推荐(0) 编辑
VTK 图像处理_创建
摘要:1.引言:图像数据结构 数字图像文件内容由两个部分组成:图像头信息和数据。图像头信息定义了图像的基本信息,主要包括起点位置(Origin),像素间隔(space)和维数(dimension)。通过这三个参数即可以决定图像空间位置和规模。图像可以看做是空间中的一个规则网格,网格中的每个最小单元称之为一
阅读全文
posted @
2021-01-06 14:50
一杯清酒邀明月
阅读(584)
推荐(0) 编辑
VTK 数据读写_图像数据的读写
摘要:1.前言 VTK应用程序所需的数据可以通过两种途径获取: 第一种是生成模型 ;第二种是从外部存储介质里导入相关的数据文件,(如vtkBMPReader读取 BMP图像) 。VTK 也可以将程序中处理完成的数据写入单个文件中, 或者将所渲染的场景导出。从可视化管线的角度来看,一般以数据的读取 (或由模
阅读全文
posted @
2021-01-06 14:48
一杯清酒邀明月
阅读(2500)
推荐(1) 编辑
VTK 基本数据结构_如何把几何结构&拓扑结构加入到数据集
摘要:1. 无拓扑结构 只有几何结构,没有拓扑结构的vtkDataSet 1 #include <vtkAutoInit.h> 2 VTK_MODULE_INIT(vtkRenderingOpenGL); 3 4 #include <vtkSmartPointer.h> 5 #include <vtkPo
阅读全文
posted @
2021-01-06 14:45
一杯清酒邀明月
阅读(1033)
推荐(0) 编辑
VTK 基本数据结构_数据对象&数据集
摘要:1.前言 前面学习了VTK的一个重要概念——可视化管线,了解了VTK数据的流动过程。好比我们做一道菜,在做每一道菜之前,首先要掌握这道菜的做法,什么时候放盐什么时候放酱油等调料,除了需要弄清楚做每一道菜的流程,还需要了解所做的每一道菜的原料,比如有些原料是要蒸出来才比较好吃,有些则可能会用炖的方法才
阅读全文
posted @
2021-01-06 14:42
一杯清酒邀明月
阅读(916)
推荐(0) 编辑
VTK 可视化管道的连接与执行
摘要:1.可视化管道综述 vtkProp; vtkAbstractMapper; vtkProperty; vtkCamera; vtkLight; vtkRenderer; vtkRenderWindow; vtkRenderWindowInteractor; vtkTransform; vtkLook
阅读全文
posted @
2021-01-06 14:41
一杯清酒邀明月
阅读(953)
推荐(0) 编辑
VTK 坐标系统及空间变换(窗口-视图分割)
摘要:1.坐标系统 计算机图形学里常用的坐标系统主要有四种,分别是:Model坐标系统、World坐标系统、View坐标系统和Display坐标系统,以及两种表示坐标点的方式:以屏幕像素值为单位和归一化坐标值(各坐标轴取值都为[-1, 1])。Model坐标系统是定义模型时所采用的坐标系统,通常是局部的笛
阅读全文
posted @
2021-01-06 14:38
一杯清酒邀明月
阅读(1350)
推荐(0) 编辑
VTK 三维场景基本要素:相机
摘要:1.VTK中相机原理及控制属性 观众的眼睛就好比三维渲染场景中的相机,VTK则是用vtkCamera类来表示三维渲染场景中的相机。vtkCamera负责把三维场景投影到二维平面,如屏幕、图像等。下图为相机投影示意图: 从上图可以看出与相机投影相关的因素主要有:相机位置:即相机所在的位置,用方法vtk
阅读全文
posted @
2021-01-06 14:36
一杯清酒邀明月
阅读(970)
推荐(0) 编辑
VTK 三维场景基本要素:光照
摘要:1.VTK中的光照长得什么样? 剧场里有各式各样的灯光,三维渲染场景中也一样,可以有多个光照存在。光照和相机是三维渲染场景必备的因素,如果没有指定,vtkRenderer会自动地创建默认的光照和相机。VTK里用类vtkLight来表示渲染场景中的光照。与现实中的灯光类似,VTK中的vtkLight实
阅读全文
posted @
2021-01-06 14:34
一杯清酒邀明月
阅读(949)
推荐(0) 编辑
VTK 仔细分析一个复杂程序
摘要:1.程序代码 1 #include <vtkAutoInit.h> 2 VTK_MODULE_INIT(vtkRenderingOpenGL); 3 / 4 #include <vtkSmartPointer.h> 5 #include <vtkRenderWindow.h> 6 #include
阅读全文
posted @
2021-01-06 14:29
一杯清酒邀明月
阅读(598)
推荐(1) 编辑
VTK Procedural Source Object
摘要:1.编写的程序 1 #include <vtkAutoInit.h> 2 VTK_MODULE_INIT(vtkRenderingOpenGL); 3 /// 4 #include "vtkCylinderSource.h" 5 #include "vtkPolyDataMapper.h" 6 #i
阅读全文
posted @
2021-01-06 14:28
一杯清酒邀明月
阅读(121)
推荐(0) 编辑
VTK Win32控制台项目
摘要:1.类的定义 myVTKapp.h 1 #include "windows.h" 2 #include "vtkConeSource.h" 3 #include "vtkPolyDataMapper.h" 4 #include "vtkRenderWindow.h" 5 #include "vtkR
阅读全文
posted @
2021-01-06 14:26
一杯清酒邀明月
阅读(234)
推荐(0) 编辑
VTK VTK体系结构2
摘要:1.前言 The visualization pipeline in VTK can be used to read or create data, analyze and create derivative version of this data, and write the data to d
阅读全文
posted @
2021-01-06 14:15
一杯清酒邀明月
阅读(445)
推荐(0) 编辑
VTK VTK体系结构1
摘要:1.OverView综述 The Visualization Toolkit consists of two basic subsystems: a compiled C++ class library (一个已经编译好的C++类库)and an “interpreted” wrapper laye
阅读全文
posted @
2021-01-06 14:13
一杯清酒邀明月
阅读(690)
推荐(0) 编辑
VTK 初识VTK
摘要:1.VTK是什么? Visualization ToolKit3D计算机图形学、图象处理及可视化工具包 VTK使用C++、面向对象技术开发;基于OpenGL,封装了OpenGL中的功能,屏蔽细节、便于交互、易于使用提供多种语言接口C++ 、Java 、Tcl、 Python 等;可在Windows
阅读全文
posted @
2021-01-06 14:09
一杯清酒邀明月
阅读(2065)
推荐(0) 编辑
VTK VTKCamera使用原理及小结
摘要:1. VTKCamera原理 从图可以看出与相机投影相关的因素主要有: 相机位置:即相机所在的位置,用方法vtkCamera::SetPosition()设置。 相机焦点:用方法vtkCamera::SetFocusPoint()设置,默认的焦点位置在世界坐标系的原点。 朝上方向:即哪个方向为相机朝
阅读全文
posted @
2021-01-06 14:06
一杯清酒邀明月
阅读(1211)
推荐(0) 编辑
VTK FixedPointVolumeRayCastMapperCT 体渲染
摘要:1 #include <vtkFixedPointVolumeRayCastMapper.h> 2 3 #include <vtkBoxWidget.h> 4 #include <vtkCamera.h> 5 #include <vtkCommand.h> 6 #include <vtkColorT
阅读全文
posted @
2021-01-06 10:57
一杯清酒邀明月
阅读(656)
推荐(0) 编辑
VTK vtkFixedPointVolumeRayCastMapper 一个固定像素点的体数据映射器
摘要:在vtkImageData中,绘制体数据一种软实现的光线投射算法。算法可以处理所有种类的数据类型,最多四种组件。算法可以采用复合或者MIP渲染方式,并且可以与几何数据混合起来渲染。设置采样间距space可以用来加速渲染进程。此外, 对于固定点精度是15的数据中,可以执行很好的计算。该算法是多线程的,
阅读全文
posted @
2021-01-06 10:54
一杯清酒邀明月
阅读(486)
推荐(0) 编辑