- 博客(149)
- 收藏
- 关注
原创 OpenCV练习(1)签名修复
在学校的学习过程中,需要递交许多材料,且每份材料上都需要对应负责人签名,有时候找别人要签名,然后自己粘贴的话,会出现签名模糊,背景不是纯白透明。可以看到,几乎多有的小黑块都被填充完毕,但是出现意料外的情况。在“图”字中,外面的口和里面的冬连在了一起,因为本身原图片中这两个结构就挨得很近,且为了最大限度地填充小黑块,进行膨胀时就容易粘连在一起了。但是高斯滤波后,笔画流畅了字迹却又模糊了,且中值滤波效果不大。可以看到,字迹有一定的填充,担任存在一些小的空洞,这个就需要用到闭运算了,来消除白色区域中的小黑块。
2024-06-15 01:26:19
1122
1
原创 OpenCV学习(4.15) 基于 GrabCut 算法的交互式前景提取
但在某些情况下,分割的不是那么理想,比如说,它可能把一些前景区域标成了背景,或者反过来。如果发生了这样的情况,用户需要进行仔细的修正。“划一下”基本的意思是说,*"嘿,这个区域应该是前景,你标记它为背景,在下一次迭代中更正它。在新的掩模图像中,像素将标记有四个标记,表示背景/前景,如上所述。在画中使用画笔工具,我在这个新图层上标记了不需要的白色背景(如徽标,地面等)以及黑色的前景(头发,鞋子,球等)。GrabCut算法的优点是它能够处理较为复杂的场景,并且用户交互简单,可以快速得到满意的分割结果。
2024-06-14 22:53:49
1265
原创 OpenCV学习(4.14) 基于分水岭算法的图像分割
为此,我们扩大了结果。在图像处理中,分水岭算法将图像看作地形图,图像中的亮度或灰度值表示地形的高度,目标是找到汇水盆地(即图像中的连通区域)的边界,这些边界被称为分水岭线。用一种颜色(或强度)标记我们确定为前景或对象的区域,用另一种颜色标记我们确定为背景或非对象的区域,最后标记我们不确定任何内容的区域,用 0 标记它。我们确切知道的区域(无论是前景还是背景)都标有任何正整数,但不同的整数,我们不确定的区域只是保留为零。随着水的上升,取决于附近的峰值(梯度),来自不同山谷的水,明显具有不同的颜色将开始融合。
2024-06-13 22:00:00
1092
原创 OpenCV学习(4.13) 霍夫变换
概率Hough变换相比于标准Hough变换的优点是它更快,因为它不需要为每个边缘点计算和投票所有的参数空间。此外,它通常能够给出更准确的结果,因为它考虑了边缘点之间的局部关系。这种方法的缺点是它可能不会检测到图像中所有的直线,特别是当直线的支持点较少时。因此,概率Hough变换适用于直线较为密集的场景,而在直线稀疏的情况下可能不如标准Hough变换有效。在霍夫变换中,你可以发现即使是一条仅有两个参数的直线,也需要用到大量的计算。概率霍夫变换是我们已知的,针对霍夫变换的优化方案。
2024-06-13 17:41:29
1350
原创 OpenCV学习(4.12) 模板匹配
它只是在输入图像上滑动模板图像(如在 2D 卷积中),并比较模板图像下的模板和输入图像的补丁。在OpenCV中,模板匹配是一种用于在较大图像中寻找模板图像位置的方法。这种方法基于滑动窗口机制,通过在输入图像上滑动模板图像并在每个位置计算模板与图像子区域的相似度来确定最佳匹配位置。如果输入图像的大小(WxH)且模板图像的大小(wxh),则输出图像的大小为(W-w + 1,H-h + 1)。在上一节中,我们搜索了梅西的脸部图像,该图像仅在图中出现一次。模板匹配是一种在较大图像中搜索和查找模板图像位置的方法。
2024-06-12 23:58:55
787
原创 OpenCV学习(4.11) OpenCV中的图像转换
对于正弦信号,$x(t)=Asin(2\pi ft)$ ,我们可以说 $f$ 是信号的频率,如果采用其频域,我们可以在 $f$ 处看到一个尖峰。如果信号进行采样,以形成离散信号,我们得到了相同的频域,但在范围周期性 $[-π,π]$ 或 $[0,2\pi]$(或 $[0,N]$ 用于N点DFT)。在上一部分中,我们创建了一个HPF,这次我们将看到如何去除图像中的高频内容,即我们将LPF应用于图像。因此,您已经进行了频率变换,您可以在频域中执行一些操作,例如高通滤波和重建图像,若进行逆DFT。
2024-06-12 23:45:58
1262
2
原创 OpenCV学习(4.10) OpenCV中的直方图
然后,我们将该直方图“反向投影”到需要找到对象的测试图像上,换句话说,我们计算出属于地面的每个像素的概率并将其显示出来。例如,较亮的图像会将所有像素限制在较高的值。即 $B(x,y)= R [h(x,y),s(x,y)]$ 其中h是色调,s是像素在(x,y)的饱和度。这是因为它的直方图不像我们在前面的案例中所看到的那样局限于特定区域(尝试绘制输入图像的直方图,您将获得更多的直觉)。另一个重要特征是,即使图像是较暗的图像(而不是我们使用的较亮的图像),在均衡后,我们将获得与获得的图像几乎相同的图像。
2024-06-12 17:08:13
987
原创 OpenCV学习(4.9) OpenCV中的轮廓
通常我们使用函数来检测图像中的对象,对吗?有时对象位于不同的位置。但是在某些情况下,某些形状位于其他形状内。就像嵌套的数字一样。在这种情况下,我们将外部的一个称为父级,将内部的一个称为子级。这样,图像中的轮廓彼此之间就具有某种关系。并且我们可以指定一个轮廓如何相互连接,例如是其他轮廓的子轮廓,还是父轮廓等。这种关系的表示称为层次结构。
2024-06-10 10:40:14
1436
1
原创 OpenCV学习(4.8) 图像金字塔
通过去除较低级别图像(较高分辨率)中的连续行和列来形成高斯金字塔中的较高级别图像(较低分辨率)。较高级别图像的每个像素值由低一级别图像的 5 个像素值高斯加权得到,由此图像面积减少到原来的四分之一。例如,在搜索图像中的某些内容如脸部信息时,并不确定该内容在图像中占据的大小。例如,一个分辨率为1024x768的图像意味着图像在水平方向上有1024个像素,在垂直方向上有768个像素。原始图像的分辨率通常指的是图像在水平和垂直方向上的像素数量。这是图像的一个重要属性,因为它决定了图像的清晰度和细节水平。
2024-06-08 22:28:46
1246
1
原创 OpenCV学习(4.7) Canndy边缘检测
它的基本原理是在图像的每个像素点上,如果该点的像素值不是在其梯度方向上的最大值,那么这个点的像素值将被抑制或设置为0。渐变方向与边缘垂直。一般而言,图像边缘意味着亮度的剧烈变化,可以通过图像的二阶导也就是梯度来衡量,不过再此之前需要清楚噪声,因为噪声的周围亮度也存在变化,会影响边缘检测效果。双阈值处理(Double Thresholding)是Canny边缘检测算法中的一个关键步骤,它用于确定哪些边缘是真正的边缘,哪些可能是由噪声引起的假边缘。:使用双阈值和边缘梯度方向,进行边缘跟踪,得到最终的边缘图像。
2024-06-08 17:59:30
958
原创 OpenCV学习(4.6) 图像梯度
1.目标图像梯度是图像处理中的一个基本概念,它用于测量。在数学上,梯度是函数的偏导数,而在图像处理中,梯度通常用于表示。
2024-06-07 23:50:48
543
原创 OpenCV学习(4.5) 图像的形态转换
形态梯度的计算方法是先对图像进行膨胀,然后从膨胀后的图像中减去原始图像。笔者认为,这些噪声由于是散乱分布的,再进行二值化时部分被划为前景,部分被划为背景,但无论是前景还是背景,它们都是孤立的,第一步的腐蚀会去除哪些孤立的前景噪声,第二部。这个是先进行腐蚀再进行膨胀的效果图,腐蚀除了将背景的噪声去除外,一些背景中的纹理也在一定程度的隐去了,而膨胀可以将这些纹理再现出来,甚至比原图还要强。可以看到,用来进行闭运算的核越大,消除黑色小块的能力越强,不过当核过于大的时候,就是前景与背景的分界变得模糊。
2024-06-07 17:35:02
1707
原创 特征融合热门方法及模型
特征融合方法(由深度之眼整理)https://arxiv.org/abs/1608.06993https://github.com/liuzhuang13/DenseNethttps://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/He_Deep_Residual_Learning_CVPR_2016_paper.pdfhttps://arxiv.org/abs/1511.06062https://arxiv.org/abs/1709.
2024-06-07 13:58:15
699
原创 OpenCV学习(4.4) 平滑图像
有趣的是,在上面的过滤器中,中心元素是一个新计算的值,它可能是图像中的像素值,也可能是一个新值。操作如下:将该内核中心与一个像素对齐,然后将该内核下面的所有 25 个像素相加,取其平均值,并用新的平均值替换这个25x25窗口的中心像素。在图像处理中,平滑图像是一种去噪和模糊技术,用于减少图像中的噪声和细节,使得图像看起来更加平滑。同态滤波是一种增强图像对比度的方法,它通过对图像进行对数变换和频率域滤波,然后再进行指数逆变换,来实现图像的平滑和亮度调整。这是通过用一个归一化的滤波器内核与图像卷积来完成的。
2024-06-06 20:35:54
1259
原创 OpenCV学习(4.3) 图像阈值
请注意,如果您想要使用 OpenCV 的 `cv.threshold` 函数来应用 Otsu 阈值,您应该使用 `cv.threshold(blur, 0, 255, cv.THRESH_BINARY + cv.THRESH_OTSU)`,而不是手动计算阈值。请注意,Otsu 阈值化通常使用 OpenCV 的 `cv.threshold(blur, 0, 255, cv.THRESH_BINARY + cv.THRESH_OTSU)` 函数来实现,而不是手动计算累积分布函数。函数将返回一个包含噪声的图像。
2024-06-05 16:42:34
776
原创 OpenCV学习(4.2) 图像的几何变换
它允许我们从一个特定的视角观察一个物体,就像我们通过窗户看外面的世界,窗户的框架会提供一个不同的视角,即使窗户外的物体是平面的。透视变换(Perspective Transformation)是一种更加一般的变换,它可以将一个平面上的图像映射到另一个平面上,同时保持直线的直线性质,但不保持平行线的平行性。其中,A 是一个 2x2 的矩阵,表示旋转、缩放和剪切,b 是一个 2 元素的向量,表示平移,x 是原始点的坐标,T(x) 是变换后点的坐标。在仿射变换中,原始图像中的所有平行线在输出图像中仍然是平行的。
2024-06-04 23:16:09
1024
原创 OpenCV学习(4.1) 改变颜色空间
对于 HSV, 色调(Hue)范围为 [0,179], 饱和度(Saturation)范围为 [0,255] ,明亮度(Value)为 [0,255]. 不同的软件使用不同的比例. 所以如果你想用 OpenCV 的值与别的软件的值作对比,你需要归一化这些范围。色调(H)的上限是180(在HSV颜色空间中,蓝色的范围是从0到180,然后再次从180到0,所以这里包括了所有的蓝色),饱和度(S)的上限是200,亮度(V)的上限是255(最大值)。的函数,它将作为回调函数用于处理OpenCV窗口中的鼠标事件。
2024-06-04 17:25:06
1312
原创 OpenCV学习(3.2) 图像上的算术运算
模运算是一种取余数的运算,当相加的结果超出了数据类型的表示范围时,会将结果取余数。: 在 OpenCV 中,当进行图像加法操作时,如果相加的结果超出了图像像素值的表示范围(通常为 0 到 255),则会进行饱和运算。也就是说,如果相加的结果超出了像素值的表示范围,那么结果将被截断为最大值或最小值,以确保结果在合法范围内。异或的加密使用,首先 执行一次异或运算得到一个结果,再对这个结果执行第二次异或运算,则还原成最初的值,利用这个特点可以实现对图像内容的加密和解密。在这里,γ𝛾 被视为零。
2024-05-23 11:06:50
721
1
原创 OpenCV学习(3.1) 图像基本操作
对于单个像素访问,Numpy数组方法array.item()和array.itemset())被认为更好,但是它们始终返回标量。如果要访问所有B,G,R值,则需要分别调用所有的array.item()。有时你需要分别处理图像的B,G,R通道。前者表示某一个点的像素值,后者表示该点在蓝色通道的值,0为蓝色通道,1为绿色通道,2为红色通道。如果图像是灰度的,则返回的元组仅包含行数和列数,因此这是检查加载的图像是灰度还是彩色的好方法。图像属性包括行数,列数和通道数,图像数据类型,像素数等。# 访问 RED 值。
2024-05-22 10:32:07
678
原创 OpenCV学习(2.1) 初识图像
输出的image0没有打印出来,太长了,不过可以从shape中看到是(861,697,3),代表的是长和宽以及通道数;image1是指定了长的位置,显示的是长为序列【0】时宽以及三个通道上的数值,对应的形状就是(697,3);image2就是选定了长和宽的位置,显示的是在该位置上的三个通道的数值,对应形状就是(3,);灰度化的目的是降低图像的复杂度,减少处理的计算量,同时保留图像的主要特征和结构。举个例子,通常来说的分辨率,1080P,720P,480P就是指像素的数量,数量越多就越清晰。
2024-05-22 00:30:13
1095
原创 OpenCV学习(一)银行卡号识别
通常情况下,银行卡号码的像素是有别于它周围的,使用灰度化和自适应阈值化后可以明显的观察到银行卡号和其他图像的,之后通过形态学变化来确定银行卡位置的形状,然后以银行卡号特有的长宽比例从银行卡上筛选出号码区域。具体来说,先通过图像预处理将图像中的银行卡号分割出来,再与提供的模板进行对比,从而完成银行卡号的识别。这些形态学变换操作通常用于图像的预处理和分析,能够改善图像的质量、增强图像的特征,并有助于后续的图像处理任务。顶帽变换是原始图像与开运算结果之间的差异,它可以用于提取图像中的小的亮区域。
2024-05-10 10:18:48
2477
1
原创 爬虫学习(4)每日一笑
点关注,不迷路</p><p>图片皆源自网络,侵删</p><p>公众号(可投稿):皮城博物馆(或直接搜索zmmryx)</p><p><img src="https://img.tgl.qq.com/cover/20240424/8b114dc092fbcdc12c8847fa578933c4_1713888056.png" style=""><br>
2024-05-07 18:34:59
1659
原创 爬虫学习(2)破解百度翻译
方法来提取JSON格式的数据。这个方法会自动将JSON格式的响应内容转换为Python字典或列表,以便于在代码中进行处理。在百度翻译页面,右键选择“检查“,然后是Network,Fetch,如下图所示。是用于将HTTP响应体解析为JSON格式的方法。通常情况下,当你使用。库发送HTTP请求并得到响应后,可以使用。且返回的数据类型是json。1.找到要爬取的数据类型。
2024-05-06 22:35:45
771
1
原创 爬虫学习(1)简易网页采集器
爬取完成后,会将相应的html存放到搜索名+html文件中。如何使用: (reques ts模块的编码流程)将爬虫发出的请求伪装成浏览器发出的请求。将url携带的参数封装到字典中。代码运行会提示输入搜索内容。
2024-05-06 13:50:55
477
原创 使用streamlit构建网站
使用Streamlit,您可以通过简单的Python脚本快速构建数据可视化、机器学习模型展示、数据分析工具等应用。这个网站界面形式可以更改,对应的是3网站部分。具体功能是,点击上传按钮或者“Browse files”从电脑本地选择图片上传,经过短暂算法运行,会给出图片对应的情况类型。最近团队有一个人脸识别的项目,想做一个网站界面来演示,同时使用了花生壳进行内网穿透,使得可以在其他设备访问该界面。这个网站地址是本地地址,只能通过本地电脑访问,其他设备无法访问,这里使用花生壳来实现内王穿透。
2024-04-26 17:09:53
762
1
原创 github上传代码
Github无法创建仓库,Repository name 报错 Couldn‘t check availability。偷一下懒,把链接贴一下,后续再补充。2.如何创建GitHub仓库。3.如何删掉GitHub仓库。
2024-04-16 16:13:08
1109
原创 模型训练-保存训练数据
找到一个可运行的代码,可以每个epoch打印训练数据,但是不会保存。因为在改进模型需要这些训练数据进行对比,所以需要将每个epoch的训练数据保存下来,写到一个文件中。
2024-04-11 20:25:15
1248
原创 人脸情绪识别(1)附代码
通常情况下,等待键盘输入的时间为 1 毫秒。6.使用 cv2.putText 在帧 frame 上绘制预测的情绪类别文字,坐标为 (x+20, y-60),字体为 cv2.FONT_HERSHEY_SIMPLEX,字体大小为 1,颜色为 (255, 255, 255)(白色),线宽为 2,字体线型为 cv2.LINE_AA。plot_model_history(model_info) 这个函数的作用是绘制模型的训练过程中的历史数据,通常包括训练集和验证集上的损失值和准确率随着训练轮数的变化趋势。
2024-03-28 10:45:53
3199
5
原创 语音情感分类(1)简单可运行项目(附代码)
嵌入矩阵是在自然语言处理(NLP)中常用的一种技术,用于将离散的词或字符转换为连续的向量表示。它是一种将高维离散数据映射到低维连续空间的方法。在NLP任务中,我们通常使用词嵌入(word embedding)来表示单词。词嵌入是一种将单词映射到实数向量的技术,它可以捕捉到单词之间的语义和语法关系。嵌入矩阵是用来存储这些词嵌入的矩阵,其中每一行对应一个单词的向量表示。嵌入矩阵的大小通常由两个参数确定:词汇表大小(vocabulary size)和嵌入维度(embedding dimension)。
2024-03-27 16:04:28
1266
原创 vit细粒度图像分类(十)TransFG学习笔记
在这项工作中,我们首先评估了ViT框架在细粒度识别设置中的有效性。然后,由于注意链接的强度可以直观地视为令牌重要性的指标,我们进一步提出了一种新的部件选择模块,该模块可以应用于大多数变压器架构,我们将变压器的所有原始注意权重集成到注意图中,以指导网络有效准确地选择判别图像补丁并计算它们之间的关系。使用对比损失来扩大混淆类的特征表示之间的距离。
2024-02-03 23:57:25
1725
1
原创 vit细粒度图像分类(九)RAMS-Trans学习笔记
具体来说,我们的方法的核心是动态补丁建议模块(DPPM)引导区域放大,以完成多尺度图像补丁的集成。DPPM从全尺寸图像斑块开始,通过在每个尺度上生成的注意力权重的强度作为指标,迭代地扩大区域注意力,从全局到局部生成新的斑块。我们的方法只需要ViT本身的注意力权重,并且可以很容易地进行端到端训练。
2024-02-03 23:56:54
1509
细粒度图像分类上 Vision Transformer 的发展综述
2024-01-07
The Oxford Handbook of Affective Computing
2023-10-25
一篇关于人类对视觉信息感知的文章
2023-10-25
一篇关于计算机视觉和人类视觉之间关系的综述性文章
2023-10-25
Multi-Label Image Recognition with Graph Convolutional Networks
2023-10-18
abstract图像情感数据集
2023-10-18
图像情感分类数据集Emotion6
2023-10-18
图像情感分析 英文论文十篇
2023-10-18
损失函数 LDAM (详细代码,亲测可运行)
2023-10-18
深度学习 + Resnet + 详解
2023-10-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人