opencv
文章平均质量分 87
落叶霜霜
这个作者很懒,什么都没留下…
展开
-
【小白笔记:JetsonNano学习(二)JetsonNano 安装开机问题屏幕进不去】
原因分析:烧录的tf卡为sd卡时候的格式化的格式不对,新建格式出错,导致烧录失败,文件无法完整读取。将经过烧录之后的sd卡插入jetson nano之后出现以下的几个界面,表示烧录失败。64gb以上默认格式化为exfat,不要选择ntfs,重新烧录即可。解决办法:重新烧录,重新格式化选择格式。jetson nano官方镜像。32gb默认fat32格式。原创 2024-03-18 21:29:33 · 499 阅读 · 0 评论 -
[图像和LiDAR点云的可微分配准]
该方法的框架主要包括以下几个步骤:VoxelPoint-to-Pixel匹配框架:该框架用于学习结构化的跨模态潜在空间。它由三个分支组成:体素分支、像素分支和点分支。体素分支和像素分支使用卷积神经网络在表示为网格的体素和像素上执行操作,以学习它们之间的对应关系。点分支用于补充体素化过程中丢失的信息。新颖的损失函数:为了学习独特的跨模态模式,该方法引入了一种自适应加权优化的损失函数。该损失函数能够根据样本之间的差异性动态调整权重,从而更好地捕捉跨模态特征之间的相关性。原创 2023-12-21 19:36:59 · 925 阅读 · 0 评论 -
【OpenCV实现图像:可视化目标检测框】
通过使用Python和相关的图像处理库,可以轻松实现目标检测框的可视化。通过结合目标检测算法的输出和Matplotlib的功能,可以创建一个直观且易于理解的图像,展示图像中目标的位置和边界框。通过cv2.rectangle 函数设置 thickness参数 ,可以得到填充后的图像,进而利用opencv中的 cv2.add_weight 函数可以实现透明效果,自行尝试。左上为常用的不带标签的输出框,右上为YOLO系列美化带标签后的矩形框,左下为四个角点美化后的矩形框,右下为带标签的角点美化矩形框.原创 2023-11-23 20:44:53 · 3202 阅读 · 0 评论 -
【OpenCV实现图像:制作酷炫的动画效果】
在以上代码中,首先定义了一个名为 update_points 的函数,该函数用于更新绘制图像中的数据点。函数的输入参数 num 代表当前动画的第几帧,函数的返回值即为我们需要更新的对象。随后,创建图形和轴,初始化点的位置,以及编写初始化函数和更新函数。初始化函数负责设置图形的初始状态,包括坐标轴的范围等。更新函数则定义了动画每一帧的变化,这里以cos函数为例,计算点的新坐标位置。通过FuncAnimation类,设置动画的帧数、初始化函数、更新函数等参数,最后调用plt.show()显示动画。原创 2023-11-23 20:06:54 · 2075 阅读 · 1 评论 -
【OpenCV实现图像:使用OpenCV生成拼图效果】
另一种是考虑间隔,可以选择相邻正方形之间是否存在间隔,以及间隔的大小,同样可以选择是否对高度不能整除的部分进行空白填充。在生成拼图效果时,可以考虑不同的模式,包括是否考虑间隔和如何处理不能整除的部分。在带填充的情况下,会对不能整除的高度部分进行空白填充。相邻正方形之间存在间隙,间隔距离为3像素,同时对高度不能整除的部分进行白色填充。相邻正方形之间存在间隙,间隔距离为3像素,同时高度不能整除的部分直接被忽略。示例图中演示了正方形之间的间隔,高度不能整除的部分填充为白色。原创 2023-11-22 14:12:49 · 1036 阅读 · 0 评论 -
【OpenCV实现图像:使用OpenCV进行图像处理之透视变换】
透视变换可以用于矫正图像中的透视畸变,使得图像中的物体在新的视平面上呈现更加规则的形状。透视变换通常涉及到寻找图像中的特定点集,这些点对应于真实场景中的特定位置。通过这些点的映射关系,可以计算出透视变换的矩阵,然后将整个图像进行变换。上述公式中,u,v代表原始图像坐标,x,y为经过透视变换的图片坐标,其中变换矩阵为3X3形式。接着我们需要挑选四个点,我们这里采用左上,左下,右下和右上,下面的代码把我们挑选的四个点画到图像上.直观的来看,透视变换的作用就是将左侧图像的坐标点。通过计算我们知道,转换矩阵如下。原创 2023-11-22 13:50:19 · 2288 阅读 · 2 评论 -
【OpenCV实现图像:使用OpenCV进行物体轮廓排序】
然后,通过遍历这些排序后的轮廓,并调用 draw_contour 函数绘制,最后使用 cv2.imshow 显示排序后的结果。通过上述步骤,得到了图像中的所有物体的轮廓,接下来定义函数sort_contours函数来实现对轮廓进行排序操作,该函数接受method参数来实现按照不同的次序对轮廓进行排序,比如从左往右,或者从右往左.在这个图中,每个轮廓都被找到,但它们的顺序是混乱的,这使得难以对每个目标进行准确的测量和分析。这个函数简单地检查返回的轮廓元组的长度,根据长度选择正确的轮廓返回位置。原创 2023-11-21 20:05:24 · 1564 阅读 · 0 评论 -
【OpenCV实现图像:在Python中使用OpenCV进行直线检测】
该变换的核心思想是通过在参数空间内进行投票来确定可能存在的几何形状,最终通过检测累积结果找到在参数空间中的极大值,从而获得符合特定形状的参数。一般来说,直线检测的过程可以被描述为在霍夫空间中对每个边缘点进行投票,使得共线的边缘点在霍夫空间中的某一条直线上具有最大的投票数。通过分析霍夫空间中的累积结果,可以确定图像中存在的直线,并获取这些直线的参数,如斜率和截距。在应用霍夫变换进行直线检测之前,通常需要先使用边缘检测算法,以减少图像的数据量并去除不相关的信息,从而保留图像中重要的结构特征。原创 2023-11-21 19:51:28 · 822 阅读 · 0 评论 -
【OpenCV实现图像:OpenCV利用Python创作热力图】
热力图是一种强大的统计图表,通过对数据进行色彩映射,直观展示了数据分布的热度和密度。在绘制热力图时,关键在于指定颜色映射的规则,这决定了图中不同数值的呈现方式。通常,较大的数值以深色或偏暖的色彩表示,而较小的数值则以浅色或偏冷的色彩呈现,从而使观察者能够迅速理解数据的相对大小和趋势。该操作的关键步骤是将图像划分为非重叠的块,块的大小决定了最终像素化效果的粒度。通常,块的尺寸越大,图像看起来越像是由像素块组成。首先,我们来读取样例图像,并对其进行相应的crop操作。原创 2023-11-20 20:11:45 · 1537 阅读 · 0 评论 -
【OpenCV实现图像:OpenCV进行OCR字符分割】
例如,在文档扫描、数字识别等任务中,通过合理运用传统图像处理技术,可以快速、准确地完成字符切分,为后续的OCR处理奠定基础。这一步的目的是简化图像,使系统能够更轻松地识别图像中的不同形状,同时去除颜色信息,从而减少处理的复杂性。在OCR任务中,字符切分是一个关键的步骤,它能够将整个文本图像分割成单个字符,为后续的处理任务提供基础。OCR(Optical Character Recognition):全称光学字符识别,是一项技术,通过使用光学和图像处理技术,将图像中的文字转换为可编辑的文本。原创 2023-11-16 20:02:14 · 1931 阅读 · 0 评论 -
【【OpenCV实现图像:用OpenCV进行模板匹配】
模板匹配是一种在图像处理领域广泛应用的技术,旨在寻找目标模板在源图像中的位置。该算法的核心思想是通过比较模板与源图像的局部区域,逐像素滑动,创建一个相似度图,反映了模板与源图像各位置的相似程度。使用OpenCV库实现模板匹配,该过程类似于在卷积神经网络中使用卷积核的方式。模板匹配的基本原理:模板匹配的基本原理是在源图像上通过逐像素滑动的方式,将模板与源图像的每个部分进行比较。这相当于在图像上进行卷积操作,其中每个像素值表示了模板与源图像相应区域的相似性。这个过程生成了一个相似度图,通过分析该图,可以识别原创 2023-11-14 20:39:23 · 1306 阅读 · 0 评论 -
【OpenCV实现图像:用OpenCV图像处理技巧之巧用直方图】
直方图均衡化是一种有效的方法,通过重新分配像素的强度值,使图像的亮度分布更均匀,提高图像的对比度和细节。通过分析图像的直方图,可以采取针对性的方法,提高低光照图像中物体的可见性,改善图像的细节,并校正曝光过度或曝光不足的问题。直方图匹配的应用,通过将目标图像的直方图调整到参考图像的直方图,实现两者之间的色彩一致性。这在图像配准和合成中有广泛的应用,提高了图像处理的精度和效果。一般来说,通过合理利用一些直方图的技巧,可以用于提高低光照拍摄图像中物体的可见性,改善图像的细节,以及校正曝光过度或曝光不足的图像。原创 2023-11-13 20:35:11 · 1006 阅读 · 1 评论 -
【OpenCV实现图像:用OpenCV图像处理技巧之白平衡算法2】
灰色世界算法是一种白平衡算法,其原理基于假设图像的平均颜色应该是灰色的。最终,通过灰色世界校正,图像呈现更为真实和自然的颜色。Ground Truth算法是一种专业应用的白平衡算法,它依赖于图像中有参考白色补丁的信息。Gray World算法假设图像中的平均颜色应该是灰色的,通过调整图像的色调来使平均颜色趋近于灰色。通过调整图像的颜色映射关系,灰色世界算法能够提高图像的色彩准确性,使得图像更符合人眼感知的自然色彩。白平衡的目标是校正图像中的颜色偏差,使得白色在图像中呈现真实的白色,从而提高图像的质量。原创 2023-11-12 20:48:52 · 950 阅读 · 0 评论 -
【OpenCV实现图像:用OpenCV图像处理技巧之白平衡算法】
定义了一个函数 calc_color_overcast(image),该函数用于计算图像中每个颜色通道(红色、绿色、蓝色)的统计信息,包括均值、标准差、最小值、中位数、80th、90th、99th 百分位数以及最大值。其目标是通过缩放图像的颜色通道,使得每个通道中最亮的像素变为白色。通过调整每个通道的亮度,算法可以校正图像的颜色投射,实现图像的白平衡。白平衡是一项用于校正由不同照明条件引起的图像颜色偏差的技术。这个过程非常重要,因为它确保了图像中的颜色是准确的,同时也使图像对人眼来说看起来更加自然。原创 2023-11-09 19:44:45 · 1840 阅读 · 0 评论 -
【OpenCV实现图像:图像处理技巧之空间滤波】
在图像处理中,空间滤波器的作用非常强大。不同的滤波器模板可以用于实现各种图像处理任务,例如边缘检测、图像锐化和模糊等。通过深入了解每种滤波器的特点和应用场景,我们可以更好地运用它们,释放创造力,探索图像处理的无限可能性。通过本文的介绍,希望读者对空间滤波器有了更加清晰的认识,能够在实际应用中灵活运用这些知识,创造出更加引人注目的图像效果。原创 2023-11-08 16:57:51 · 1081 阅读 · 0 评论 -
【OpenCV实现图像:图像处理技巧形态学滤波之腐蚀操作,RuntimeError: sequence argument must have length equal to input rank】】
腐蚀是形态学图像处理中的一种操作,它通过从图像的边缘逐渐去除像素,从而精细地缩小图像中的对象。腐蚀操作的原理是通过考虑每个像素的周围区域,将该像素的值设置为周围区域内所有像素的最小值。简单来说,腐蚀操作可以使图像中的对象变小,去除对象边界上的像素,从而实现图像的精细化处理。例如,如果选择使用一个正方形作为的结构元素,它会考虑到像素周围的所有相邻像素。相反,如果选择一个较小的结构元素,腐蚀操作的效果会更加细微,可能只会去除对象的边缘像素。openAI 的 GPT 大模型的发展历程。首先导入我们今天的图像。原创 2023-11-03 20:15:19 · 484 阅读 · 0 评论 -
【OpenCV基于HSV空间的彩色图像分割技术报错:ValueError: the input array must be have a shape =】= (.., ..,[ ..,】
首先会想到的是进行crop相关的操作,这在某种程度上是可行的,但是这通常也会有一些不相关的像素会被包括在内,我确信大多情况下不希望这样。这个报错是由于rgb2hsv函数期望的输入是一个RGB图像,其形状应该是(高度, 宽度, 3),表示三个颜色通道。HSV颜色空间在图像分割领域的用途,并通过一个具体的示例来对其进行讲解,主要通过分析HSV相应的通道上不同的阈值来对设置不同的掩码,进而对不同的对象进行分割。一般来说,HSV代表色调、饱和度和亮度,稍后将在分割图像时使用来自HSV颜色空间的信息。原创 2023-11-01 14:45:54 · 157 阅读 · 0 评论 -
【OpenCV实现图像:用Python生成图像特效,报错ValueError: too many values to unpack (expected 3)】
错误提示表明在(r, g, b) = img.getpixel((x, y))这一行代码中,getpixel((x, y))返回的值不是期望的3个像素通道值(红、绿、蓝),而是更多的值,因此Python无法将这些值正确地分配给(r, g, b)。然后,我们获取了图像的宽度和高度,并创建了一个新的图像对象new_img,它具有相同的大小。这个文章里面的东西被参考,我用来做方法二,可以说有点用,但是方法一是最好的办法,避免方法二的传参问题,如果有参数传递错误,或者是版本问题导致库的传参问题,可以使用方法二。原创 2023-10-31 13:09:52 · 743 阅读 · 0 评论 -
【OpenCV实现图像找到轮廓的不同特征,就像面积,周长,质心,边界框等等。】
首先,我们找到了矩形的轮廓cnt。接着,我们使用returnPoints=True选项来计算其凸包,得到以下四个点的坐标值:[[234 202]],[[51 202]],[[51 79]],[[234 79]]。现在我找到了它的凸包,returnPoints=True,我得到了以下值:[[234 202]],[[51 202]],[[51 79]],[[234 79]],它们是矩形的四个角点。该函数返回一个四元组(x,y,w,h),其中(x,y)表示矩形左上角的坐标,(w,h)表示矩形的宽度和高度。原创 2023-10-30 20:40:43 · 1205 阅读 · 0 评论 -
【OpenCV实现平滑图像金字塔,轮廓:入门】
这个术语的来源是因为当这些图像以堆叠的形式存在时,最高分辨率的图像位于底部,而最低分辨率的图像位于顶部,形象地呈现出金字塔的形状。当传递cv.CHAIN_APPROX_SIMPLE给cv.findContours()函数时,它会智能地删除冗余的点,仅保留形状的关键点,比如端点,从而用更少的点来近似表示轮廓。这个方法决定了轮廓的存储方式。举例来说,在图像拼接中,你需要将两个图像堆叠在一起,但是由于图像之间的不连续性,它的结果可能并太能令人满意。所以需要记住的是,需要被找到的物体得是白色的,背景需要是黑色的。原创 2023-10-29 21:03:03 · 815 阅读 · 0 评论 -
【OpenCV实现图像梯度,Canny边缘检测】
接着,Canny算法使用双阈值(Double Thresholding)来检测强边缘和弱边缘,并通过连接强边缘来得到最终的边缘图像。尽管边缘 C 的位置在 maxVal 下面,但是因为它和边缘 A 相连接,所以我们认为它也是个有效边缘,如此得到了一条完整的曲线。在此阶段,我们需要确定哪些边缘是真实的,哪些是噪声或者假的。如果我们希望找到所有的边缘,更好的方法是将输出的数据类型保持在一个更高的精度范围内,例如cv.CV_16S、cv.CV_64F等,然后取其绝对值,最后再转换回cv.CV_8U类型。原创 2023-10-29 20:26:08 · 599 阅读 · 0 评论