《机器视觉算法与应用(双语版)》是一本关于机器视觉算法与应用的中英文对照
2016-06-29 13:48
第1章 简介1. 机器视觉常见任务目标识别(Object identification):用来甄别不同的被测物体。比如物流控制或者根据不同目标进行不同检测。识别可以基于特殊的识别特征,比如字符串
2021-07-02 06:34
本篇讨论的是有关CPU(在Zynq SoC中是指ARM处理器核)和FPGA的可编程逻辑架构之间的机器视觉算法分割。美国国家仪器公司(National Instruments)的Carlton
2021-05-31 09:17
机器视觉系统基于数字图像中的信息进行决策。若系统算法不分主次,让所有图像数据都参与到目标识别或分类的计算过程中,机器视觉
2022-10-24 10:11
机器视觉行业顶尖技术,功能强大
2014-09-25 12:50
Percepto Robotics宣布,其专有的Sparrow无人机采用了新的机器视觉算法,作为其完整的自主无人机系统的一部分。这种差异化技术使其无人机能够完全自主;能够根据他们“看到”的内容进行
2018-10-21 11:20
最近一直在使用机器人与上位机进行视觉抓取技术的调试,对C# 也稍有了解,就这样我开始接触到了HALCON.
2023-02-01 09:24
图像处理中常用到的算子都有哪些?1. cv::abs()计算矩阵的绝对值cv::MatExpr cv::abs( cv::InputArray src );cv::MatExpr cv::abs( const cv::MatExpr& src ); // Matrix expression2. cv::add()计算矩阵src1和src2的加和,并把结果存放在dst中。void cv::add( cv::InputArray src1, // First input array cv::InputArray src2, // Second input array cv::OutputArray dst, // Result array cv::InputArray mask = cv::noArray(), // Optional, do only where nonzero int dtype = -1 // Output type for result array);3. cv::addWeighted()该函数和上一个add()函数比较类似,是根据下面公式将结果写入dst中。可用于图像混合。void cv::addWeighted( cv::InputArray src1, // First input array double alpha, // Weight for first input array cv::InputArray src2, // Second input array double beta, // Weight for second input array double gamma, // Offset added to weighted sum cv::OutputArray dst, // Result array int dtype = -1 // Output type for result array);4. cv::bitwise_and()逐元素按位与操作。void cv::bitwise_and( cv::InputArray src1, // First input array cv::InputArray src2, // Second input array cv::OutputArray dst, // Result array cv::InputArray mask = cv::noArray(), // Optional, do only where nonzero);5. cv::bitwise_not()逐元素按位取反操作。void cv::bitwise_not( cv::InputArray src, // Input array cv::OutputArray dst, // Result array cv::InputArray mask = cv::noArray(), // Optional, do only where nonzero);6. cv::bitwise_or()逐元素按位取或操作。void cv::bitwise_or( cv::InputArray src1, // First input array cv::InputArray src2, // Second input array cv::OutputArray dst, // Result array cv::InputArray mask = cv::noArray(), // Optional, do only where nonzero);7. cv::bitwise_xor()逐元素按位异或操作。void cv::bitwise_xor( cv::InputArray src1, // First input array cv::InputArray src2, // Second input array cv::OutputArray dst, // Result array cv::InputArray mask = cv::noArray(), // Optional, do only where nonzero);8. cv::calcCovarMatrix()给定一些向量,假设向量表示的点是近似的高斯分布,,那么该函数将计算这些点的均值和协方差矩阵。void cv::calcCovarMatrix( const cv::Mat* samples, // C-array of n-by-1 or 1-by-n matrices int nsamples, // num matrices pointed to by 'samples' cv::Mat& covar, // ref to return array for covariance cv::Mat& mean, // ref to return array for mean int flags, // special variations, see Table bellow. int ctype = cv::F64 // output matrix type for covar);void cv::calcCovarMatrix( cv::InputArray samples, // n-by-m matrix, but see 'flags' below cv::Mat& covar, // ref to return array for covariance cv::Mat& mean, // ref to return array for mean int flags, // special variations. int ctype = cv::F64 // output matrix type for covar);该函数有两种调用方式,如上codes。9. cv::cartToPolar()直角坐标系转为极坐标系。void cv::cartToPolar( cv::InputArray x, cv::InputArray y, cv::OutputArray magnitude, cv::OutputArray angle, bool angleInDegrees = false);10. cv::checkRange()检查src中每个元素是否在给定的范围之内。范围有minVal和maxVal设置。除非将quiet设置为true,否则抛出异常。如果都在范围内,则返回true,否则将返回false,并将第一个异常值的位置存放在pos中。bool cv::checkRange( cv::InputArray src, bool quiet = true, cv::Point* pos = 0, // if non-Null, location of first outlier double minVal = -DBL_MAX, // Lower check bound (inclusive) double maxVal = DBL_MAX // Upper check bound (exclusive));11. cv::compare()逐元素比较src1和src2,并将比较结果放在dst中,匹配标记为255,否则设置为0。bool cv::compare( cv::InputArray src1, // First input array cv::InputArray src2, // Second input array cv::OutputArray dst, // Result array int cmpop // Comparison operator.);12. cv::completeSymm()将矩阵mtx通过复制使其对称,默认情况下将上三角的所有元素都被复制到下三角对应转置的位置上,对角元素不变。如果lowerToUpper = true,那么则将下三角复制到上三角位置。bool cv::completeSymm( cv::InputArray mtx, bool lowerToUpper = false);13. cv::convertScaleAbs()该函数按照如下公式进行转换原图像。实现对原图像像素值的缩放和平移。void cv::convertScaleAbs( cv::InputArray src, // Input array cv::OutputArray dst, // Result array double alpha = 1.0, // Multiplicative scale factor double beta = 0.0 // Additive offset factor);14. cv::countNonZero()返回矩阵mtx中非零元素的个数。int cv::countNonZero( // Return number of nonzero elements in mtx cv::InputArray mtx, // Input array);15. cv::cvarrToMat()将旧版本的图像格式转为Mat类图像。cv::Mat cv::cvarrToMat( const CvArr* src, // Input array: CvMat, IplImage, or CvMatND bool copyData = false, // if false just make new header, else copy data bool allowND = true, // if true and possible, convert CvMatND to Mat int coiMode = 0 // if 0: error if COI set, if 1: ignore COI);16. cv::dct()根据flags执行离散余弦变换或者离散余弦逆变换。void cv::dct( cv::InputArray src, // Input array cv::OutputArray dst, // Result array int flags, // for inverse transform or row-by-row);17. cv::dft()实现离散傅里叶变换及其逆变换。void cv::dft( cv::InputArray src, // Input array cv::OutputArray dst, // Result array int flags = 0, // for inverse transform or row-by-row int nonzeroRows = 0 // only this many entries are nonzero);18. cv::cvtColor()保留相同数据类型的同时将图像从一个颜色空间转换到另一个颜色空间。void cv::cvtColor( cv::InputArray src, // Input array cv::OutputArray dst, // Result array int code, // color mapping code, see Table 5-4. int dstCn = 0 // channels in output (0='automatic'));19. cv::determinant()计算一个方阵的行列式。double cv::determinant( cv::InputArray mat);20. cv::divide()将src1或scale中的元素除以src2中相应的元素,然后将结果放在dst中。void cv::divide( cv::InputArray src1, // First input array (numerators) cv::InputArray src2, // Second input array (denominators) cv::OutputArray dst, // Results array (scale*src1/src2) double scale = 1.0, // Multiplicative scale factor int dtype = -1 // dst data type, -1 to get from src2);void cv::divide( double scale, // Numerator for all divisions cv::InputArray src2, // Input array (denominators) cv::OutputArray dst, // Results array (scale/src2) int dtype = -1 // dst data type, -1 to get from src2);21. cv::eigen()计算矩阵的特征向量和特征值。bool cv::eigen( cv::InputArray src, cv::OutputArray eigenvalues, int lowindex = -1, int highindex = -1);bool cv::eigen( cv::InputArray src, cv::OutputArray eigenvalues, cv::OutputArray eigenvectors, int lowindex = -1, int highindex = -1);22. cv::exp()计算src中所有元素的指数,并将结果存放在dst中。void cv::exp( cv::InputArray src, cv::OutputArray dst);23. cv::flip()绕x轴或者y轴旋转。void cv::flip( cv::InputArray src, // Input array cv::OutputArray dst, // Result array, size and type of 'src' int flipCode = 0 // >0: y-flip, 0: x-flip,
2019-07-04 08:00
“使用FPGA的好处在于,它基本上是由软件定义的硬件。因此,系统设计人员可以在软件芯片中编程,并且当该软件下载到FPGA,代码变成可根据需要重新编程的实际硬件。由于FPGA实际是并行设备,使用FPGA进行图像处理特别有利。
2019-07-23 10:04
机器视觉算法有很多,以下是其中一些常见的算法: 边缘检测算法:用于检测图像中的边缘,如Sobel
2023-03-12 11:55