视觉
文章平均质量分 75
luckyone906
这个作者很懒,什么都没留下…
展开
-
(QT/MFC中)c++使用Opencv遍历图像像素的两种方式(以调整图像亮度与对比度为例)
qt原创 2023-02-16 22:23:12 · 893 阅读 · 0 评论 -
成功案例超详细-vs2019 opencv qt创建动态库被C#调用
图像转载 2023-02-16 22:16:10 · 931 阅读 · 1 评论 -
遍历Opencv中Mat中每个像素的值
c++原创 2022-11-12 09:21:02 · 1585 阅读 · 0 评论 -
QT中使用OpenGL绘制图形
Qt Creator中的3D绘图及动画教程(参照NeHe)刚刚学习了Qt Creator,发现Qt提供了QtOpenGL模块,对OpenGL做了不错的封装,这使得我们可以很轻松地在Qt程序中使用OpenGL进行绘图渲染。虽然里面还是由不少专业的解释照搬原文的,但还是加入了大量自己的分析。而且Qt中写OpenGL框架上比VC简单太多了,有不少东西都封装优化好了,代码上还是由有很多区别的。当然,其中原教程没解释好的问题我都作了深入的解释,以及一些多余部分解释、代码都被我删掉简化了。这份Qt OpenGL的3原创 2021-03-15 18:59:30 · 3337 阅读 · 0 评论 -
Qt中使用OpenGL进行绘图
Qt Creator中的3D绘图及动画教程(参照NeHe)刚刚学习了Qt Creator,发现Qt提供了QtOpenGL模块,对OpenGL做了不错的封装,这使得我们可以很轻松地在Qt程序中使用OpenGL进行绘图渲染。虽然里面还是由不少专业的解释照搬原文的,但还是加入了大量自己的分析。而且Qt中写OpenGL框架上比VC简单太多了,有不少东西都封装优化好了,代码上还是由有很多区别的。当然,其中原教程没解释好的问题我都作了深入的解释,以及一些多余部分解释、代码都被我删掉简化了。这份Qt OpenGL的3原创 2021-03-15 18:54:58 · 3158 阅读 · 0 评论 -
opencv学 之图像傅里叶变换dft
一、前言接触了图像的傅里叶变换,数学原理依旧不是很懂,因此不敢在这里妄言。下午用Opencv代码实现了这一变换,有一些经验心得二、关键函数解析2.1copyMakeBorder() 扩展图片尺寸傅里叶变换的计算对图像的尺寸有一定要求,尺寸不满足要求的,可用copyMakeBorder() 函数进行扩展。函数定义如下:void copyMakeBorder(InputArray...原创 2020-02-19 20:05:39 · 2322 阅读 · 0 评论 -
图像的色彩类别,灰度化,二值化
灰度化:在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫灰度值,因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值、亮度值),灰度范围为0-255。一般常用的是加权平均法来获取每个像素点的灰度值。二值化:图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果在图像处理中,用RGB三个分量(R:Red,...原创 2020-01-22 15:39:58 · 3490 阅读 · 2 评论 -
C++的Opencv动态库遇到的问题
1.c#中的位图传入时注意bitmapdata的 stride这个参数,步幅,图像宽度*通道数,必须是整4的倍数貌似,待确定。2.某个对象正在在使用的异常,用lock锁锁住共享资源。3.无法加载dll,找不到指定的模块,可能有几种原因,如系统或exe缺少一些依赖的dll,还有就是编译位数不对,或dll路径不对。4.c#手动分配的内存,...原创 2020-01-09 21:46:30 · 339 阅读 · 0 评论 -
遍历opencv中的mat像素的几种方法和概念
今天在看矩形滤波的时候忽然脑子短路,把一些概念全弄混了,现总结一下,以便下次再混的时候可以参考确认下,自己的理解,有错的地方还请指正。首先,在Opencv2中基本上都是用的Mat来表示图像了,C++的函数调用中基本上也都是Mat图,从根本上说,一张图像是一个由数值组成的矩阵,矩阵的每一个元素代表一个像素。对于灰度图像而言,像素有8位无符号数表示,其中0代表黑色,255代表白色...原创 2020-01-07 21:36:37 · 2567 阅读 · 0 评论 -
一种新的图像清晰度评价函数
自动聚焦是机器人视觉、数字视频系统中的关键技术之--,是决定图像质量的重要因素,是获取清晰图像的第1步。聚焦性能取决于调焦评价函数的准确性和有效性,即评价函数必须具有无偏性好、单峰性强和较好的抗噪性能。图像模糊的本质是高频分量的损失,聚焦图像比离焦图像包含更多的信息和细节,这是设计聚焦评价函数的基础。该文采用基于聚焦窗口模式的平方梯度函数作为聚焦评价函数,判断图像是否清晰。通过...原创 2020-01-06 22:29:00 · 861 阅读 · 0 评论 -
11种图像清晰度评价函数
典型无参考图像清晰度评价(可用作对焦评价函数)Tenengrad评价函数Tenengrad函数是一种由Tenenbaum提出的,基于梯度的常用图像清晰度评价函数。特南梯度。在图像处理中,一般认为对焦好的图像具有更尖锐的边缘,故具有更大的梯度函数值。Tenengrad函数使用Sobel算子提取水平和垂直方向的梯度值,求其平方和作为评价函数。具体过程如下:设Sobel卷积核为,则图...原创 2020-01-06 21:58:09 · 15384 阅读 · 3 评论 -
一种新的图像清晰度评价函数,数字图像清晰度评价函数的研究与改进
摘要:摘 要: 通过分析常见的图像清晰度评价函数,针对自动对焦系统中图像清晰度评价问题,提出了一种基于聚焦窗口的改进梯度评价函数算法。改进后的算法具有计算量小、实时性好、评价曲线单峰性好、灵敏度高、聚焦检测效率高等特点,可以更好地满足自动对焦系统对图像清晰度评价的要求。 关键词: 图像清晰度;自动聚焦;评价函数 图像清晰度评价在图像分析和识别中具有重要的意义。数字图像评价函数是评价数摘...转载 2020-01-06 21:30:10 · 3131 阅读 · 1 评论 -
opencv系列-图像清晰度评价
opencv系列-图像清晰度评价1,换了opencv3.4,用来测试2,opencv好评呀图像清晰度评价算法有很多种,在空域中,主要思路是考察图像的领域对比度,即相邻像素间的灰度特征的梯度差;在频域中,主要思路是考察图像的频率分量,对焦清晰的图像高频分量较多,对焦模糊的图像低频分量较多。这里实现3种清晰度评价方法,分别是Tenengrad梯度方法、Laplacian梯度...原创 2020-01-06 21:08:42 · 878 阅读 · 1 评论 -
图像清晰度评价15种方法对比
在无参考图像的质量评价中,图像的清晰度是衡量图像质量优劣的重要指标,它能够较好的与人的主观感受相对应,图像的清晰度不高表现出图像的模糊。本文针对无参考图像质量评价应用,对目前几种较为常用的、具有代表性清晰度算法进行讨论分析,为实际应用中选择清晰度算法提供依据。(1)Brenner 梯度函数Brenner梯度函数是最简单的梯度评价函数,它只是简单的计算相邻两个像素灰度差的平方,...转载 2020-01-06 21:05:17 · 16035 阅读 · 3 评论 -
OpenCV 图像清晰度评价算法(相机自动对焦)
相机的自动对焦要求相机根据拍摄环境和场景的变化,通过相机内部的微型驱动马达,自动调节相机镜头和CCD之间的距离,保证像平面正好投影到CCD的成像表面上。这时候物体的成像比较清晰,图像细节信息丰富。相机自动对焦的过程,其实就是对成像清晰度评价的过程,对焦不准确,拍摄出来的图像清晰度低,视觉效果模糊,如果是在工业检测测量领域,对焦不准导致的后果可能是致命的;对焦准确的图像清晰度较高,层次鲜明,对比...原创 2020-01-06 21:00:02 · 6960 阅读 · 0 评论 -
OpenCV图像锐化/增强
OpenCV图像锐化/增强0.综述1.Laplacian高通滤波算子2.Laplacian锐化代码实践3.USM锐化增强算法4.USM代码实践0.综述图像的卷积计算除了可以完成我们前面介绍的模糊去噪、边缘检测等任务外,还可以实现图像锐化/增强的功能。图像锐化是一种突出和加强图像中景物的边缘和轮廓的技术。在图像中,边缘可以看作是位于一阶导数较大的像素位置,因此可以通过求图像的一阶导...原创 2020-01-06 20:52:45 · 6721 阅读 · 1 评论 -
c#和c++的opencv位图数据参数互换问题解决方法
1.******************************C#调用vc++ dll 传递参数的问题(Bitmap 转换为 opencv mat ),保存后图片不一样。vc++ 代码bool Recognize(Point_2F *arr,uchar* b){Mat src=cv::Mat(415,770,CV_8UC3,b);/*for (int i=0;i<s...原创 2020-01-05 11:08:34 · 1425 阅读 · 1 评论 -
c#调用c++(Opencv)dll的实例
*****************************************c++代码MYDLL int GetCenterPos(uchar* imageData,int step, int widthValue, int heightValue, int BinaryThreshold, int LineBlankThreshold, int* centerX, int* cente...原创 2020-01-05 11:00:08 · 1065 阅读 · 0 评论 -
C#对比图片相似度算法
参考Neal Krawetz博士的这篇文章, 实现这种功能的关键技术叫做"感知哈希算法"(Perceptual Hash Algorithm), 意思是为图片生成一个指纹(字符串格式), 两张图片的指纹越相似, 说明两张图片就越相似. 但关键是如何根据图片计算出"指纹"呢? 下面用最简单的步骤来说明一下原理:第一步 缩小图片尺寸 将图片缩小到8x8的尺寸, 总共64个像...原创 2020-01-01 21:51:30 · 5833 阅读 · 2 评论 -
卷积为什么如此强大?一文全解深度学习中的卷积
卷积为什么如此强大?一文全解深度学习中的卷积2018年05月10日 15:52:41七月在线实验室阅读数:17112作者:Tim Dettmers(Understanding Convolution in Deep Learning)原文地址:http://www.yangqiu.cn/aicapital/2382000.html有太多的公开课、教程在反复传颂卷积神...转载 2019-04-11 20:59:50 · 354 阅读 · 0 评论 -
OpenCV进行图像相似度对比的几种办法
转载请注明出处:http://blog.csdn.net/wangyaninglm/article/details/43853435,来自:shiter编写程序的艺术对计算图像相似度的方法,本文做了如下总结,主要有三种办法:1.PSNR峰值信噪比PSNR(Peak Signal to Noise Ratio),一种全参考的图像质量评价指标。简介:https://en.w...转载 2019-09-12 13:06:55 · 436 阅读 · 0 评论 -
BITMAPINFO结构
BITMAPINFO结构BITMAPINFO结构具有如下形式:typedef struct tagBITMAPINFO{BITMAPINFOHEADER bmiHeader;RGBQUAD bmiColors[1];} BITMAPINFOBITMAPINFO结构定义了位图(DIB)的度量和颜色信息。成员:bmiHeader 指定了一个BITMAPINFO...转载 2019-07-24 06:56:37 · 5863 阅读 · 0 评论 -
RGB和RGBQUAD的区别
RGB和RGBQUAD的区别昨天的晚上,为一个问题困扰了很长时间,几乎整个晚上都在弄一个小bug,感觉没有问题,但就是效果不理想,几次三番,查来查去........... 我想实现的功能是:生成一张图,图上有字,这张图是以一张指定的位图为背景的,我使用:COLORREF GetPixel( HDC hdc, // handle to DC int nXPos,...转载 2019-07-24 06:56:54 · 452 阅读 · 0 评论 -
CvMat、Mat、IplImage之间的转换详解及实例
IplImage:在OpenCV中IplImage是表示一个图像的结构体,也是从OpenCV1.0到目前最为重要的一个结构;在之前的图像表示用IplImage,而且之前的OpenCV是用C语言编写的,提供的接口也是C语言接口;Mat:Mat是后来OpenCV封装的一个C++类,用来表示一个图像,和IplImage表示基本一致,但是Mat还添加了一些图像函数;在...转载 2019-07-24 06:57:05 · 3849 阅读 · 0 评论 -
MFC+OPENCV+显示MAT类型图像
MFC显示图像到界面,可以用链接中的DrawMatToPic,有时会出现IplImage*类型转换问题,因为用opencv做后续图像处理,所以统一使用Mat类型,可以showMat()函数进行显示。在MFC中嵌入opencv窗口”view”后,其他地方调用imshow(”view“,图像名)。int Ctest2Dlg::ShowMat(cv::Mat img, HWND hWndDispla...转载 2019-07-23 12:46:24 · 484 阅读 · 0 评论 -
在MFC的picture控件中如何显示Mat图
首先,要进行输入检查,看Mat数据是否是有效的,如下图中所示 定义位图数据结构,用以方便在图形设备接口(GraphicsDeviceInterface)上显示,也就是windows上的GDI 开发内存空间,并初始化,按下图中所示那样即可 定义位图相关信息,并和输入数据Mat图联系起来 在获取控件的客户区,并设置图像的显...转载 2019-07-23 12:33:31 · 814 阅读 · 0 评论 -
Python+Opencv识别两张相似图片
在网上看到python做图像识别的相关文章后,真心感觉python的功能实在太强大,因此将这些文章总结一下,建立一下自己的知识体系。当然了,图像识别这个话题作为计算机科学的一个分支,不可能就在本文简单几句就说清,所以本文只作基本算法的科普向。看到一篇博客是介绍这个,但他用的是PIL中的Image实现的,感觉比较麻烦,于是利用Opencv库进行了更简洁化的实现。相关背景要识别两张相似图像,我...转载 2019-09-12 13:08:51 · 2843 阅读 · 2 评论 -
OpenCV进行图像相似度对比的几种办法
1、直方图方法方法描述:有两幅图像patch(当然也可是整幅图像),分别计算两幅图像的直方图,并将直方图进行归一化,然后按照某种距离度量的标准进行相似度的测量。方法的思想:基于简单的向量相似度来对图像相似度进行度量。优点:直方图能够很好的归一化,比如256个bin条,那么即使是不同分辨率的图像都可以直接通过其直方图来计算相似度,计算量适中。比较适合描述难以自动分割的图像。缺点...转载 2019-09-12 13:10:50 · 1702 阅读 · 0 评论 -
比较两幅图像的相似度
现在以图搜图的功能比较火热,很好奇其原理。简单的搜索学习得知,实现相似图片搜索的关键技术是“感知哈希算法”,作用是对每一张图片按照某种规律生成一个对应的指纹字符串。比较不同图片之间的指纹字符串,结果越接近,图片越相似。现将问题简化为研究两幅图像的相似度,算法可能其他博客都有介绍了,现给出实现代码(简易版)。简易版指纹字符串的算法思想如下:1.输入图像2.灰度化3.将图像大小归一...转载 2019-09-12 13:13:51 · 835 阅读 · 0 评论 -
OpenCV进行图像相似度对比的几种办法
平均哈希算法实现步骤缩小尺寸:将图像缩小到8*8的尺寸,总共64个像素。这一步的作用是去除图像的细节,只保留结构/明暗等基本信息,摒弃不同尺寸/比例带来的图像差异; 简化色彩:将缩小后的图像,转为64级灰度,即所有像素点总共只有64种颜色; 计算平均值:计算所有64个像素的灰度平均值; 比较像素的灰度:将每个像素的灰度,与平均值进行比较,大于或等于平均值记为1,小于平均值记为0; ...转载 2019-09-12 13:19:47 · 3783 阅读 · 1 评论 -
opencv学习笔记(六)直方图比较图片相似度
opencv学习笔记(六)直方图比较图片相似度 opencv提供了API来比较图片的相似程度,使我们很简单的就能对2个图片进行比较,这就是直方图的比较,直方图英文是histogram, 原理就是就是将图片转换成直方图,然后对直方图进行比较,在某些程度,真实地反映了图片的相似度。代码如下: 1 #include <iostream> 2 #include <cv....转载 2019-09-12 13:26:49 · 844 阅读 · 0 评论 -
完整opencv(emgucv)人脸、检测、采集、识别、匹配、对比
//成对几何直方图匹配 public static string MatchHist() { string haarXmlPath = @"haarcascade_frontalface_alt_tree.xml"; HaarCascade haar = new HaarCascade(haarXml...原创 2019-09-12 13:29:10 · 1248 阅读 · 0 评论 -
OpenCV学习笔记——判断两张图的相似度
判断两张图的相似度方法直方图对比法 ORB算法实验1.直方图对比法参考如何使用OpenCV3直方图方法进行人脸相似度对比因为我的环境是VS2010+OpenCV2.4.8,所以在原版的基础上做了一点小修改。#include <opencv2/opencv.hpp>#include "opencv2/core/core.hpp"#include "open...转载 2019-09-12 13:30:56 · 4003 阅读 · 0 评论 -
【OpenCV】直方图应用:直方图均衡化,直方图匹配,对比直方图
本文链接:https://blog.csdn.net/xiaowei_cqu/article/details/7606607 ...转载 2019-09-12 13:35:08 · 293 阅读 · 0 评论 -
在OpenCV中将cv::Mat绘制到MFC的视图中
毕设时遇到了一个问题,不能在MFC中显示由GrabCut抠出来的图。经一番折腾发现: 在OpenCV中如果图像最初是Mat类型的话,就不能通过转换为IplImage,再转换为CvvImage来显示到View里(OpenCV里没有函数能直接将Mat显示到View里),只能通过StretchDIBits来绘制。 下面介绍StretchDIBits函数的使用方法:(转自:在MFC中应用OpenC...转载 2019-07-23 12:14:59 · 863 阅读 · 0 评论 -
在MFC图像控件上显示opencv Mat格式图片
/*显示opencv图片格式Mat到图像控件vIDC上vMat:图像MatvIDC:图像控件ID*/void CDLFaceDlg::showMat(Mat vMat, int vIDC){ if (vMat.empty()){ return; } //获取图片的宽 高度 int tImgWidth = vMat.co...转载 2019-07-23 12:10:04 · 402 阅读 · 0 评论 -
在MFC中显示cv::Mat
BOOL DrawMat(CDC *pDC, cv::Mat &img, CRect &rect){ if(img.empty() || img.depth() != CV_8U || img.channels() != 3) return FALSE; BITMAPINFO bmInfo; memset(&bmInfo, 0,...转载 2019-07-23 12:08:08 · 468 阅读 · 0 评论 -
Opencv获取身份证号码区域
记得应该是16年的时候,从一个公开课看到了关于OCR方面的内容,里面讲到了通过OpenCV对身份证号码区域的剪裁以及使用Tess-Two进行文字识别,实现了对身份证号码的识别功能。断断续续看了点关于OpenCV的资料,感觉不是这个专业的真难看懂,各种公式各种名词。今天主要用于做个记录,那个一直碎碎念的东西终于完成了!原理我理解的原理(除去文字识别):对图片进行降噪以及二值化,凸显内容...转载 2019-04-15 21:45:54 · 734 阅读 · 0 评论 -
VS2010调用tesseract步骤
我的tesseract安装路径为D:\Tesseract-OCR,如果你的安装路径和我不一样,将这份文档里所有的D:\Tesseract-OCR改为你的安装路径即可。1.下载lib和dll(所有需要下载的东西在附件里下载)Ø首先安装tesseract-ocr-setup-3.02.02.exe文件,我的安装路径为D:\Tesseract-OCR;Ø安装完成后解压tesseract-...转载 2019-04-15 21:44:51 · 738 阅读 · 0 评论 -
OpenCV3.2+VS2013+Tesseract3.02.02配置
分享一下Tesseract3.02.02版本在Windows下的配置。我的环境VS2013+win8 64bit+OpenCV3.2。 需要下载:tesseract-orc-setup-3.02.02.exe和tesseract-3.02.02-win32-lib-include-dirs.zip,这个比较好下载。安装和配置步骤:(1)先执行tesser...转载 2019-04-15 21:43:52 · 377 阅读 · 0 评论