目录 1. 膨胀与腐蚀的原理2. 膨胀的具体实现1) OpenCV实现2) C/C++实现3) 验证与结果3. 腐蚀的具体实现 1. 膨胀与腐蚀的原理膨胀与腐蚀是数学形态学在图像处理中最基础的操作。在笔者之前的文章《图像的卷积(滤波)运算(一)——图像梯度》、《图像的卷积(滤波)运算(二)——高斯滤波》具体介绍了图像卷积\滤波的具体的概念与操作,图像的膨胀与腐蚀其实也是一种类似的卷积操作。其
Linux Kernel中的ASCII定义是指一种用来表示字符的编码方式,ASCII是American Standard Code for Information Interchange的缩写,是一种美国标准信息交换码。ASCII码使用7位二进制数来表示128个字符,包括数字、字母、标点符号和控制字符。 在Linux Kernel中,ASCII码常用于处理文本文件和字符设备。在文本文件中,每个字
原创 2024-03-27 11:37:30
49阅读
一. 使用Opencv绘制HSV颜色直方图所用的函数cvCvtColor可在: 使用Opencv将RGB颜色空间转换到HSV颜色空间/灰度图 文章中查找相关介绍所使用的结构体:CvHistogram以及函数:cvCalcHistCvCreateHistcvGetMinMaxHistValuecvConvertScalecvReleaseHist可在: 使用Opencv绘制灰度直方图/对比
最近要深一步用到GPIO口控制,写个博客记录下Kernel层的GPIO学习过程! 一、概念 General Purpose Input Output (通用输入/输出)简称为GPIO,或 总线扩展器。也就是芯片的引脚,当微控制器或芯片组没有足够的I/O端口,或当系统需要采用远端串行通信或控制时,GP
转载 2016-03-25 13:58:00
355阅读
2评论
OpenCV中的HAL方法调用流程分析在OpenCV中有一些所谓HAL(Hardware Acceleration Layer)实现,看名字好像和硬件相关,其实也不尽然,可以理解为比常规的OCV实现更快的版本就好了。此文要做的就是要找到其实现或者切入流程,打通整个函数调用逻辑。本文将以resize和GaussianBlur两个函数来分析。resize首先定位到imgproc模块的imgproc.h
一、前言经过两个星期的努力,一边学习,一边写代码,初步完成了毕业论文系统的界面和一些基本功能,主要包括:1 数据的读写和显示,及相关的基本操作(放大、缩小和移动);2 样本数据的选择;3 数据归一化处理;4 绘制光谱曲线;5 获取波段信息。接下来的工作主要是完成遥感影像分类的相关算法。这部分主要是数学计算,尤其是矩阵的相关运算和操作。为此,系统的学习和了解了openCV库中常用的矩阵操作函数,记录
转载 2024-02-16 10:13:49
51阅读
基于区域分割是将图像按照相似性准则分成不同的区域,主要包括区域增长,区域分裂合并和分水岭等几种类型。OpenCV提供了 分水岭算法函数watershed 和 GrabCut算法函数grabCut,可以快速实现图像的分割。本文是讲述分水岭算法watershed的实例,代码为OpenCV官方文档里。图像分割知识请移步:Opencv(11)——分水岭算法实例_僚机武士的博客-_opencv分水岭算法 官
转载 2024-06-16 16:14:27
32阅读
文章目录1、回顾caffe添加自定义层2、opencv中添加自定层2.1、实现AllPassLayer2.2、实现MyConvLayer3、加载第三方模型3.1、opencv中caffe源代码修改3.2、在项目代码中实现新增的层(1)不需要从prototxt中读取对应层参数(2)需要从prototxt中读取对应层参数4、实际项目 ENet 本文先回顾caffe中添加层AllPassLayer的
转载 2024-03-25 09:24:36
127阅读
我们习惯在SI(Source Insight)中阅读Linux内核,SI会建立符号表数据库,能非常方便地跳转到变量、宏、函数等的定义处。
转载 2013-09-21 12:50:00
235阅读
2评论
轮廓函数基本都在imgproc.hpp文件中,本文统计了13个相关的函数。1)void findContours( InputOutputArray image, OutputArrayOfArrays contours,OutputArray hierarchy, int mode, int method, Point offset = Point()); 这个函数用来对二值图像进行轮
第二节 Mat数据类型详解1、Mat数据类型描述我们有多种从现实世界中获取数字图像的方法:数码相机,扫描仪,计算机断层扫描和磁共振成像等等。 在每种情况下,我们(人类)看到的都是图像。 但是,当将其转换为数字设备时,我们记录的是图像每个点的数值。如下图所示:例如,在上图中,您可以看到汽车的镜子不过是一个包含所有像素点强度值的矩阵。OpenCV中的Mat是一个N维稠密数组,或多通道数组。它可用于存储
# Python与OpenCV中的Mat对象定义指南 OpenCV是一个强大的计算机视觉库,它提供了许多功能,包括图像和视频的处理。在Python中,NumPy库通常与OpenCV配合使用,因为OpenCV的图像对象(通常被称为`Mat`)实际上是NumPy数组。本文将引导您完成在Python中使用OpenCV定义`Mat`对象的步骤,并包含详细的代码示例和解释。 ## 流程概述 我们可以将
原创 7月前
69阅读
实际上目前社区有不错的实现,我直接复制了相关的类型定义直接放到构建好的4.8.1 具体借鉴的定义是peteruhnak/opencv-ts 项目的
原创 2023-11-28 10:56:32
138阅读
  目前SK已支持OpenAI,Azure OpenAI,Gemini,HuggingFace,MistralAI等LLM,相信之后会越来越丰富。  首先要引入所对应的LLM包,具体项目文件如下:<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputTy
转载 6月前
59阅读
  目前SK已支持OpenAI,Azure OpenAI,Gemini,HuggingFace,MistralAI等LLM,相信之后会越来越丰富。  首先要引入所对应的LLM包,具体项目文件如下:<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputTy
原创 6月前
87阅读
make modules_install --> make install --> update-grub 这一系列步骤,后来我发现了Debian、Ubuntu机器上可以使用kernel-package这番神器来编译安装内核。 kernel-package是Debian提供的一个编译Linux内核的一个工具集,安装kernel-package 会同时安装上build-es
转载 2023-09-07 15:52:33
159阅读
背景在进行一个和视频分析相关的项目研究的时候,我们需要前置使用OpenCV对图像进行预处理。在密集使用OpenCV的API的过程中,我们有了这样一种感觉:大部分人写的API都是ctrl+c 和 ctrl+v,而OpenCV的好多API,每一个API背后都是一篇论文。感动之余,Gemfield写了这篇文章,把调研过程中使用过的OpenCV的API都在这篇文章中予以解释。Gemfield也欢迎Open
转载 2024-08-08 16:45:00
25阅读
        首先,opencv目前仅支持三种特征的训练检测, HAAR、LBP、HOG,选择哪个特征就去补充哪个吧。opencv的这个训练算法是基于adaboost而来的,所以需要先对adaboost进行基础知识补充啊,网上一大堆资料,同志们速度去查阅。我的资源里也有,大家去下载吧,这些我想都不是大家能直接拿来用的,我下面将直接手把手告诉大家训练怎么操作
转载 2024-05-06 15:54:18
155阅读
Mat类基本介绍Mat类是OpenCV中使用最频繁的类之一,用于储存矩阵数据及相关操作,也是程序中图像的主要形式。Mat类主要由两部分组成:一个描述头(matrix header)及一个指向矩阵数据的指针。其中,描述头包含了矩阵的一些基本信息,如矩阵的尺寸,所占空间大小等。Mat类有以下几个特点:Mat类会自动分配内存,使用者无需考虑内存的管理。(老版的OpenCV中使用IPIImage类,需要用
spyder虽然平时在本地用起来很方便,但是偶尔还是想使用远程运行远程linux服务器上的代码和环境 1.需要在远程的服务端启动spyder服务启动spyder核root@AI# python -m spyder_kernels.console NOTE: When using the `ipython kernel` entry point, Ctrl-C will not work.
转载 2023-06-29 15:24:19
358阅读
  • 1
  • 2
  • 3
  • 4
  • 5