12 2021 档案
摘要:8U类型的 RGB 彩色图像可以使用 <Vec3b> 3 通道 float 类型的矩阵可以使用 <Vec3f> 对于 Vec 对象,可以使用[]符号如操作数组般读写其元素,如:Vec3b color; //用 color 变量描述一种 RGB 颜色color[0]=255; //0通道的B 分量co
阅读全文
摘要:#include<opencv2/opencv.hpp> #include<iostream> int main(int argc, char** argv) { cv::Mat M = (cv::Mat_<double>(3, 3) << 0, -10, 0, -11, 0, 0, 0, 88,
阅读全文
摘要:K-means算法分割 K-means是一种经典的无监督聚类算法 不需要人工干预。算法原理: (1)随机选择两个中心点; (2)计算每个点到这两个中心点的距离,最近的分成一类(连接起来); (3)重新计算中心点(平均值计算),计算新的中心点到旧的中心点的差值如果小于输入的值,就说明中心的位置发生了变
阅读全文
摘要:Hough变换是图像处理中从图像中识别几何形状的基本方法之一 原理看视频: https://www.bilibili.com/video/BV16i4y1R7kf?spm_id_from=333.999.0.0 霍夫直线检测 标准的霍夫变换 cv::HoughLines从平面坐标转换到霍夫空间,最终
阅读全文
摘要:#include<opencv2/opencv.hpp>] #include<iostream> int main(int argc, char** argv) { cv::Mat src = cv::Mat(10,10,CV_32FC1,cv::Scalar(1)); cv::Mat tmp; c
阅读全文
摘要:配置: 1.安装qt5 看:https://www.cnblogs.com/liming19680104/p/10546216.html 2.配置手机(模拟器) 我的是oppo手机: 设置-->关于手机->-->双击数次 -->输入密码-->提示处于开发者模式 设置-->其它设置-->开发者选项--
阅读全文
摘要:直方图均衡化是一种常见的增强图像对比度的方法,使用该方法可以增强局部图像的对比度,尤其在数据较为相似的图像中作用更加明显 直方图是什么: 直方图是图像中像素强度分布的图形表达方式. 它统计了每一个强度值所具有的像素个数. 直方图均衡化是什么: 直方图均衡化是通过拉伸像素强度分布范围来增强图像对比度的
阅读全文
摘要:看:https://www.cnblogs.com/liming19680104/p/15622610.html
阅读全文
摘要:Scharr是sobel算子的特殊改进情况。当内核大小为3时,Sobel内核可能产生比较明显的误差,为了解决这一问题,Opencv提供了Scharr函数,但该函数仅作用于大小为3的内核,运行速度与Sobel函数一样,但结果却更加精确 #include<opencv2/opencv.hpp> #inc
阅读全文
摘要:blur均值滤波 这是通过将图像与标准化的盒式过滤器( normalized box filter)进行卷积来完成的。它只取内核区域下所有像素的平均值并替换中心元素 我们应该指定内核的宽度和高度。 3x3标准化的盒式过滤器如下所示: #include<opencv2/opencv.hpp> #inc
阅读全文
摘要:int i = cv::min(40, 20);//返回两个数中的最小值
阅读全文
摘要:OTSU算法和最大熵算法,但这两种算法都属于全局阈值法,所以对于某些光照不均的图像,这种全局阈值分割的方法会显得苍白无力,如下图: 此时应采用自适应阈值法(adaptiveThreshold),它的思想不是计算全局图像的阈值,而是根据图像不同区域亮度分布,计算其局部阈值,所以对于图像不同区域,能够自
阅读全文
摘要:double t2 = (double)cv::getTickCount();//返回从操作系统启动到当前所经的计时周期数 double t= cv::getTickFrequency()//用于返回CPU的频率 //单位是秒,也就是一秒内重复的次数 //所以剩下的就很清晰了:总次数 / 一秒内重复
阅读全文
摘要:从大津法的原理上来讲,该方法又称作最大类间方差法,因为按照大津法求得的阈值进行图像二值化分割后,前景与背景图像的类间方差最大(就是能自动区分图像前景与背景的二值化) 它被认为是图像分割中阈值选取的最佳算法,计算简单,不受图像亮度和对比度的影响,因此在数字图像处理上得到了广泛的应用。它是按图像的灰度特
阅读全文
摘要:#include<opencv2/opencv.hpp> #include<iostream> bool down = false; int i = 0; void onMouse(int event, int x, int y, int flags, void* param) //鼠标回调函数 {
阅读全文
摘要:使用一个指定的核元素去膨胀一个图像,图像膨胀的过程类似于一个卷积的过程,源图像矩阵A 以及结构元素B,B在A矩阵上依次移动,每个位置上B所覆盖元素的最大值替换B的中心位置值(即锚点处),完成整个膨胀的过程 注意:所谓的腐蚀与膨胀的对象是针对图像中的白色元素所说的 算法通俗理解:膨胀算法使图像扩大一圈
阅读全文
摘要:注意:所谓的腐蚀与膨胀的对象是针对图像中的白色元素所说的 侵蝕顧名思義就是消融物體的邊界,如果物體大於結構元素,侵蝕的結果是讓物體瘦一圈,而 這一圈的寬度是由結構元素大小決定的,如果物體小於結構元素,則侵蝕後物體會消失,如果 物體之間有小於結構元素的細小連通,侵蝕後會分裂成兩個物體 對於集合I和H,
阅读全文
摘要:cv::Mat element = getStructuringElement(cv::MORPH_RECT,cv::Size(3, 3), cv::Point(-1, -1));//结构元素(内核矩阵) /* 第一个参数:表示内核的形状 矩形:MORPH_RECT 交叉形:MORPH_CROSS
阅读全文
摘要:图像修复技术的原理是什么呢? 简而言之,就是利用那些已经被破坏的区域的边缘, 即边缘的颜色和结构,根据这些图像留下的信息去推断被破坏的信息区的信息内容,然后对破坏区进行填补 ,以达到图像修补的目的 #include<opencv2/opencv.hpp> #include<iostream> int
阅读全文
摘要:摄像头置顶软件:链接:https://pan.baidu.com/s/1r6GDy2F-Sgsp_f1W3liv4g 提取码:6666 天子骄龙
阅读全文
摘要:定义1:三种初等变换: (i)对换两行(对换 i,j两行,记作 ri ↔ rj); (ii)以数 k≠0 乘某一行中的所有元(第i行乘 k,记作 ri×k); (iii)把某一行所有元的 k 倍加到另一行对应的元上去(第j 行的 k 倍加到第i行上,记作 ri +krj) 把定义中的“行”换成“列”
阅读全文
摘要:1.打开QT程序,以release方式运行一次 2.打开release文件夹,将这个.exe文件拷贝到一个新文件夹中 3.打开程序 4.进入新文件夹 5.输入命令行:windeployqt 程序名 等待执行完毕 此时,理论上在当前目录下是可以点击运行exe程序的,如果可以运行,说明库文件都已经拷贝到
阅读全文
摘要:需要 #include <QSystemTrayIcon> 显示系统托盘 win.h #ifndef WIN_H #define WIN_H #include <QDialog> #include <QSystemTrayIcon> //系统托盘类 #include <QDebug> class w
阅读全文
摘要:更改QT执行文件图标 1.将ico图片复制到工程文件中: 2.在qt的工程中加上RC_ICONS +=图片名字.ico : 3.编译
阅读全文
摘要:logPolar与 linearPolar在效果上的区别: linearPolar在区域内影响度是均匀的;logPolar越靠近原点影响度越大 11.jpg cv::Mat src = cv::imread("D:/bb/tu/11.jpg"); cv::imshow("src",src); cv:
阅读全文
摘要:【说明:y轴相当于角度,x轴表示到原点的距离】 效果:把圆形展成矩形;作用:比如在文字识别时,圆形不易识别,展成矩形容易识别 cv::Mat src = cv::imread("D:/bb/tu/8.png"); cv::imshow("src",src); cv::Mat dst; cv::lin
阅读全文
摘要:粘贴板是由操作系统维护的 需要 #include <QClipboard> #include <QGuiApplication> #include <QApplication> 文本 QClipboard *clipboard =QGuiApplication::clipboard(); //获取剪
阅读全文
摘要:打开系统注册表,win-R--> regedit-回车进入 对于HKEY_LOCAL_MACHINE目录的写入,需要管理员权限 HKEY_CURRENT_USER--Software (这里主要存储系统软件信息) 需要 #include <QSettings> //导入设置类 写注册表 QSetti
阅读全文
摘要:2.png #include<opencv2/opencv.hpp> #include<iostream> int main(int argc, char** argv) { //边缘检测之拉普拉斯变换Laplacian() cv::Mat src = cv::imread("D:\\bb\\tu\
阅读全文
摘要:分块矩阵 对于行数和列数较高的矩阵 A,运算时常采用分块法,使大矩阵的运算化成 小矩阵的运算.将矩阵 A 用若干条纵线和横线分成许多个小矩阵,每一个小矩 阵称为 A 的子块,以子块为元素的形式上的矩阵称为分块矩阵 例如将 3×4 矩阵 分成子块的分法很多,下面举出一种分块形式 可记为 其中 即 A
阅读全文
摘要:#include<opencv2/opencv.hpp> #include<iostream> int main(int argc, char** argv) { cv::Mat src = cv::imread("D:\\bb\\tu1\\mao.jpg"); std::vector<cv::Ma
阅读全文
摘要:#include<opencv2/opencv.hpp> #include<iostream> int main(int argc, char** argv) { cv::Mat A = cv::imread("D:/bb/tu/ma1.png"); //载入图像 cv::imshow("原图像",
阅读全文
摘要:win.h #ifndef WIN_H #define WIN_H #include <QWidget> #include <QContextMenuEvent> //用于产生右键事件 #include <QMenu> //用于生成右键菜单 #include <QAction> //用于添加菜单栏动
阅读全文
摘要:在pro中加入两个qmake: QT += multimedia QT += multimediawidgets 头文件 #include <QCamera> //导入摄像头类 #include <QCameraInfo> //摄像头信息类 #include <QCameraViewfinder>
阅读全文
摘要:克拉默法则: 如果线性方程组(9)的系数矩阵 A 的行列式不等于零,即 那么,方程组(9)有惟一解 其中 A j(j= 1,2,…,n)是把系数矩阵 A 中第j列的元素用方程组右端的常数项 代替后所得到的 n 阶矩阵,即
阅读全文
摘要:cartToPolar #include<opencv2/opencv.hpp> #include<iostream> #include <vector> int main(int argc, char** argv) { std::vector<cv::Point2f> sides;//建立容器存
阅读全文
摘要:#include<opencv2/opencv.hpp> #include<iostream> #include <vector> int main(int argc, char** argv) { //std::vector<float> vec; std::vector<int> vec; fo
阅读全文
摘要:逆矩阵的定义: 定义:对于 n 阶矩阵 A,如果有一个 n 阶矩阵 B,使 A B = B A = E, 则说矩阵 A 是可逆的,并把矩阵 B 称为 A 的逆矩阵,简称逆阵 如果矩阵 A 是可逆的,那么 A 的逆矩阵是惟一的 A 的逆矩阵记作 A -1 .即若 A B = BA = E,则 B =
阅读全文
摘要:定义:由 n 阶方阵 A 的元素所构成的行列式(各元素的位置不变),称为 方阵A 的行列式,记作det A 或 |A︳. 应该注意,方阵与行列式是两个不同的概念,n 阶方阵是 n 2 个数按一定方 式排成的数表,而 n 阶行列式则是这些数(也就是数表 A)按一定的运算法则所 确定的一个数. 由A 确
阅读全文
摘要:转置矩阵 定义 : 把矩阵 A 的行换成同序数的列得到一个新矩阵,叫做 A 的转置矩 阵,记作 A T 矩阵的转置也是一种运算,满足下述运算规律 (1)(A T)T = A; (ii)(A + B)T = A T +B T; (iii)(λA)T =λA T; (iv)(A B)T = B T A
阅读全文
摘要:sobel算子是一种常用的边缘检测算子,是一阶的梯度算法。对噪声具有平滑作用,提供较为精确的边缘方向信息,边缘定位精度不够高。当对精度要求不是很高时,是一种较为常用的边缘检测方法。Sobel卷积因子为: 其中,Gx是横向的算子,Gy是纵向的算子。原图像记为f,则GX = Gx*fGY = Gy*fG
阅读全文
摘要:定义4 设A=(aij) 是一个m×s矩阵,B=(bij) 是一个s×n矩阵,那么规定矩 阵 A 与矩阵 B 的乘积是一个 m×n 矩阵 C =(cij), 并把此乘积记作 C = A B 矩阵的乘法不满足交换律,即在一般情形下,A B≠BA 矩阵的乘法虽不满足交换律,但仍满足下列结合律和分配律(假
阅读全文
摘要:定义 3 数λ与矩阵 A 的乘积记作λA 或 Aλ,规定为 数乘矩阵满足下列运算规律(设 A、B 为 m×n 矩阵,λ、μ为数): (i)(λμ)A =λ(μA); (ii)(λ+μ)A =λA +μA; (iii)λ(A +B)=λA +λB
阅读全文
摘要:定义 2 设有两个 m×n 阵 A =(aij)和 B =(bij),那么矩阵 A 与 B 的和记 作 A +B,规定为
阅读全文
摘要:#include<opencv2/opencv.hpp> #include<iostream> #include <vector> int main(int argc, char** argv) { cv::Mat src = cv::imread("D:/bb/tu/ma.png"); cv::M
阅读全文