OpenCv
文章平均质量分 58
luckyone906
这个作者很懒,什么都没留下…
展开
-
(QT/MFC中)c++使用Opencv遍历图像像素的两种方式(以调整图像亮度与对比度为例)
qt原创 2023-02-16 22:23:12 · 893 阅读 · 0 评论 -
遍历Opencv中Mat中每个像素的值
c++原创 2022-11-12 09:21:02 · 1585 阅读 · 0 评论 -
关于QT下配置OpenCV3.4.0后出现 error: undefined reference to ‘cv::xxx‘的问题及解决方案,直接使用编译好的opencv库
按照网上的办法,在QT中pro文件末尾添加以下代码来引入OpenCV的库和头文件:INCLUDEPATH += D:\OpenCV3.4\opencv\build_mingw\install\x64\mingw\includeLIBS += D:\OpenCV3.4\opencv\build_mingw\install\x64\mingw\lib\libopencv_*.a结果发现编译后报错,出现 undefined reference to 'cv::xxx’的问题,截图如下:然后在网上看了很多原创 2020-12-25 22:32:37 · 1318 阅读 · 0 评论 -
qt调用opencv汇总(2)
OpenCV3.4.3+Qt5.9.4(QtCreator)开发环境搭建之前有过对OpenCV3.4.2+VS2015编译及环境搭建,今天使用OpenCV3.4.3+QtCreator5.9.4编译及环境搭建。编译过程比较曲折,大部分编译错误都可以查得到解决方法,也遇到了Google无果的错误,好在最后还是解决了,特此记录。编译环境win10-64bit Qt5.9.4 MinGW-5.3.0-32bit CMake-3.12.1 OpenCV-3.4.3相关软件下载地址Q.原创 2020-12-25 22:27:52 · 1365 阅读 · 0 评论 -
OpenCV积分图函数:integral ()详解
/**************************************************************************************************/// 函数名称:OnMenu020503()// 函数功能:“对角积分图”菜单。// 函数参数:// 输入参数: 无// 输出参数: 无// 返 回 值:void...原创 2020-04-28 21:02:30 · 4189 阅读 · 0 评论 -
关于opencv中Mat赋值(浅拷贝,深拷贝)原理
问题点:有两个垫对象:mat_1和mat_2将mat_2赋值给mat_1(mat_1 = mat_2)后,改变mat_1,mat_2也会被改变(这里的改变是指图像处理)。原因:mat_1 = mat_2是浅拷贝,他们虽然不同的矩阵头,但却共享内存空间。以至于改变其中一个,另一个也会被改变。解决:mat_1 = mat_2.clone();其本质是指针之间的赋值两...原创 2020-03-28 21:18:23 · 1118 阅读 · 0 评论 -
opencv中查看mat位图的像素幅度(Cv::matStep)
OpenCV__cv::Mat::stepstep[0]是矩阵中一行元素的字节数 step[1]是矩阵中一个元素的字节数(elemSize) step1 = step / elemSize1,elemSize1是元素的每个通道所占的字节数 step1(0)是矩阵一行元素的通道数(不是很贴切) step1(1)是矩阵一个元素的通道数(channel()) 示例 Mat ...原创 2020-03-09 12:30:13 · 1373 阅读 · 0 评论 -
opencv学 之图像傅里叶变换dft
一、前言接触了图像的傅里叶变换,数学原理依旧不是很懂,因此不敢在这里妄言。下午用Opencv代码实现了这一变换,有一些经验心得二、关键函数解析2.1copyMakeBorder() 扩展图片尺寸傅里叶变换的计算对图像的尺寸有一定要求,尺寸不满足要求的,可用copyMakeBorder() 函数进行扩展。函数定义如下:void copyMakeBorder(InputArray...原创 2020-02-19 20:05:39 · 2322 阅读 · 0 评论 -
图像灰度图,直方图,像素通道问题
1.图像直方图概述 直方图广泛运用于很多计算机视觉运用当中,通过标记帧与帧之间显著的边缘和颜色的统计变化,来检测视频中场景的变化。在每个兴趣点设置一个有相近特征的直方图所构成 “标签”,用以确定图像中的兴趣点。边缘、色彩、角度等直方图构成了可以被传递给目标识别分类器的一个通用特征类型。色彩和边缘的直方图序列还可以用来识别网络视频是否被复制。 其实,简单来说,直方图就是对数据进行统计的一种...原创 2020-02-11 14:03:35 · 2994 阅读 · 0 评论 -
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#调用C++(opencv)中图片数据传递的问题
C++DLL代码:C#代码:课题需要做一个界面,因为某些原因不能用emgucv,需要在C#winform中调用opencv的方法,用opencv处理图片之后再传回到C#pictureBox控件中显示出来。从C#向C++传递图片参数,处理后的图片能在C++中imshow出来,但是不知道怎么从C++往C#穿回去,应该是需要穿指针地址回去,但是还不知道怎么传?...原创 2020-01-04 19:13:31 · 2969 阅读 · 3 评论 -
Opencv中Mat图的长、宽、行、列以及图像像素的概念问题
c++原创 2020-01-02 21:20:21 · 3726 阅读 · 1 评论 -
【OpenCV】直方图应用:直方图均衡化,直方图匹配,对比直方图
本文链接:https://blog.csdn.net/xiaowei_cqu/article/details/7606607 ...转载 2019-09-12 13:35:08 · 293 阅读 · 0 评论 -
BITMAPINFO结构
BITMAPINFO结构BITMAPINFO结构具有如下形式:typedef struct tagBITMAPINFO{BITMAPINFOHEADER bmiHeader;RGBQUAD bmiColors[1];} BITMAPINFOBITMAPINFO结构定义了位图(DIB)的度量和颜色信息。成员:bmiHeader 指定了一个BITMAPINFO...转载 2019-07-24 06:56:37 · 5863 阅读 · 0 评论 -
MFC中将CBitmap画到cdc上
//取Picture矩形和它的DCCRectrect;CWnd*pWnd=GetDlgItem(IDC_PICTURE_LINK);pWnd->GetClientRect(rect);CDC*pDC=pWnd->GetDC();//创建内存DCCDCmemDC;memDC.CreateCompatibleDC(NULL);...原创 2019-07-21 11:42:44 · 692 阅读 · 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(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学习笔记(六)直方图比较图片相似度
opencv学习笔记(六)直方图比较图片相似度 opencv提供了API来比较图片的相似程度,使我们很简单的就能对2个图片进行比较,这就是直方图的比较,直方图英文是histogram, 原理就是就是将图片转换成直方图,然后对直方图进行比较,在某些程度,真实地反映了图片的相似度。代码如下: 1 #include <iostream> 2 #include <cv....转载 2019-09-12 13:26:49 · 844 阅读 · 0 评论 -
彻底解决显示Opencv中Mat图像到Mfc窗口问题
第一步,转换格式前预先获得待显示控件的大小,若相等则不做处理,若不等则首先改变Mat图像大小,再进行转换。 CRect rect; GetDlgItem(IDC_STATIC_SRC)->GetClientRect(&rect); cv::Size winSize(rect.right, rect.bottom); ...转载 2019-07-23 12:03:57 · 300 阅读 · 0 评论 -
OpenCV学习笔记之 ( 三 ) MFC显示Mat图片
以下步骤参考以下链接http://blog.csdn.net/dcrmg/article/details/51913160原理及详解见上链接。下面只讲步骤。 一、打开VS2010,建立对话框的项目。二、建立“PictureControl”,"Button"按钮,修改属性三、在Show_Mat_ImageDlg.h添加如下头文件#include <iost...转载 2019-07-23 11:57:38 · 509 阅读 · 0 评论 -
opencv----(1) mat最好用,和IplImage,cvmat 比较
学习了几天,发现mat比IplImage,cvmat 好用太多了。不知道确切的原文出处,我是转自新浪的一篇博文:http://blog.sina.com.cn/s/blog_534497fd01015k7z.html(原创作者如果看到,请提醒我,我会写明原作者)opencv中常见的与图像操作有关的数据容器有Mat,cvMat和IplImage,这三种类型都可以代表和显示图像,但是...转载 2019-07-23 08:29:11 · 429 阅读 · 0 评论 -
OpenCV中Mat总结
一、数字图像存储概述数字图像存储时,我们存储的是图像每个像素点的数值,对应的是一个数字矩阵。二、Mat的存储1、OpenCV1基于C接口定义的图像存储格式IplImage*,直接暴露内存,如果忘记释放内存,就会造成内存泄漏。2、从OpenCV2开始,开始使用Mat类存储图像,具有以下优势:(1)图像的内存分配和释放由Mat类自动管理(2)Mat类由两部分数据组成:矩阵头(包...转载 2019-07-23 08:22:47 · 617 阅读 · 0 评论 -
MFC与OpenCv中的图片转换实例
#include "AnalysisManager.h"IplImage* GetFontDiscerImage(char* sourcePath){ //打开要识别字符的图像 IplImage *image = cvLoadImage(sourcePath); if(image == NULL) { printf("错误:无法打开该图...转载 2019-07-21 14:39:00 · 371 阅读 · 0 评论 -
Asprise OCR SDK 15.3试用版破解
1. 序言 之前因同事需要,破解过Asprise OCR 4.0试用版本,对这个库比较有印象。目前最新版本为15.3,网上已经能下载到它的试用破解版本,但似乎没有看到此版本的破解文章。AspriseOCR 15.3与4.0比较,基本上没有加强保护强度,因此破解方法也可以参考网上公布的4.0版本的破解方法,只有一点点不同。AspriseOCR 15.3破解方法相当简单,甚至都用不到Olly...转载 2019-07-25 11:00:11 · 3783 阅读 · 2 评论 -
Tesseract-ocr 3.0.2源码 + VS2010项目工程 + 简单测试代码
编译环境:Visual Studio 2010所用类库版本:zlib 1.2.7lpng1514jpegsr9tiff-4.0.3giflib-5.0.4leptonica-1.69tesseract-ocr3.0.2下载地址http://pan.baidu.com/s/1c0pqvQg 密码rlib测试代码bool XYImage::RecognizeImag...转载 2019-07-25 11:00:42 · 249 阅读 · 0 评论 -
MFC+opencv 显示mat图像
VS2015+opencv3.0 MFC显示图片中方法三在使用时,只能显示彩色图像,灰度图像显示有问题,经查找,是没有设置图像调色板的原因 图片控件宽度不为4的倍数 显示错误, 修改代码 /***************************************************** * * 函数名称: void DrawcvMat(cv::...转载 2019-07-25 11:00:31 · 654 阅读 · 0 评论 -
OpenCv2 学习笔记(1) Mat创建、复制、释放
OpenCV和VS2013的安装图文教程网上有很多,建议安装好之后,用VS2013建立一个空工程,用属性管理器分别新建一个对应debug和release工程的props配置文件,以后直接根据工程需要添加对应配置文件,而不需要每次新建工程后填写引用目录、库目录、附加依赖项,减少重复工作。(用WLW编辑,段间距有点大!)需要说明的是,本学习笔记不会按照先讲数据结构,再讲如何使用。与OpenCv1....转载 2019-07-24 07:21:45 · 1793 阅读 · 0 评论 -
OpenCV中的cv::String和CString互相转换
请注意是cv::String,而不是std::string,第一个字母是大写的。基本上CString转cv::String网上都能查到,而cv::String转CString没有人提到1. CString ->cv::StringUSES_CONVERSION;CString str = "abcdefg";cv::String cvStr = W2A(str);2...转载 2019-07-24 06:56:26 · 1741 阅读 · 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 评论 -
在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 评论