
图像处理
YL_python_C++_java
不定期更新 自动驾驶、辅助驾驶、遥感相关、深度学习相关、python相关、C语言、C++、java相关。
展开
-
Segment Anything中将生成的多个mask结果拼接在一起,可视化(批量处理)
Segment Anything中将生成的多个mask结果拼接在一起,可视化(批量处理)原创 2023-04-13 15:57:17 · 2595 阅读 · 4 评论 -
Pytorch中计算自己模型的FLOPs(profile(),clever_format())
Pytorch中计算自己模型的FLOPs(profile(),clever_format())原创 2023-03-27 14:41:39 · 1580 阅读 · 0 评论 -
torch.histc()用法
torch.histc()用法原创 2023-03-09 09:57:49 · 697 阅读 · 0 评论 -
python随机获取列表中某一元素
python随机获取列表中某一元素原创 2023-02-14 16:54:37 · 3495 阅读 · 0 评论 -
linux批量复制、移动文件(图片等)
linux批量复制、移动文件(图片等)原创 2022-12-09 09:49:27 · 748 阅读 · 0 评论 -
获取视频帧数和总帧数
获取视屏帧数和总帧数代码原创 2022-12-01 13:22:35 · 3581 阅读 · 0 评论 -
opencv4,cv2操作教程
1.图片加载cv2.imread(filename, flags=None)2、显示图片cv2.imshow(winname, mat)winname 图口名称mat ,已加载图片的变量名3、图像显示窗口创建与销毁,cv2.namedWindow(窗口名,属性) 创建一个窗口属性—指定窗口大小模式:cv2.WINDOW_AUTOSIZE:根据图像大小自动创建大小cv2.WINDOW_NORMAL:窗口大小可调整cv2.destoryAllWindows(窗口名) 删除任何建立的窗口原创 2022-02-22 10:01:34 · 3420 阅读 · 0 评论 -
BN层的原理与作用
从论文中给出的伪代码可以看出来BN层的计算流程是:1.计算样本均值。2.计算样本方差。3.样本数据标准化处理。4.进行平移和缩放处理。引入了γ和β两个参数。来训练γ和β两个参数。引入了这个可学习重构参数γ、β,让我们的网络可以学习恢复出原始网络所要学习的特征分布。BN就是对不同样本的同一特征做归一化。BN层的作用BN层的作用主要有三个:1.加快网络的训练和收敛的速度;2.控制梯度爆炸防止梯度消失;3.防止过拟合。接下来就分析一下为什么BN层有着三个作用。加快网络的训练和收敛的速度在原创 2021-11-20 23:13:04 · 12009 阅读 · 0 评论 -
linux下安装python的gdal库
sudo apt-get install python3-gdal原创 2021-11-09 09:27:09 · 662 阅读 · 1 评论 -
深度学习遥感图像语义分割&目标检测
深度学习遥感图像语义分割&目标检测代码见github:WangZhenqing-RS/2021Tianchi_RSgithub.com图标赛题描述本赛题基于不同地形地貌的高分辨率遥感影像资料,希望参赛者能够利用遥感影像智能解译技术识别提取土地覆盖和利用类型,实现生态资产盘点、土地利用动态监测、水环境监测与评估、耕地数量与监测等应用。结合现有的地物分类实际需求,参照地理国情监测、“三调”等既有地物分类标准,设计陆域土地覆盖与利用类目体系,包括:林地、草地、耕地、水域、道路、城镇建设用地、农转载 2021-07-11 23:16:19 · 4608 阅读 · 9 评论 -
eCognition9.0安装教程
1、首先点击setup安装路径 自定义就好(要记得是安装在哪的,比如我的C:\ruanjain\learning\Ecognition\eCognition Developer 64 9.0)最后finish就行了,接下来开始破解找到安装包文件中的patch找到 lic文件夹下的floating.lic,,将其替换到你的安装文件中的bin目录下的lic文件夹中。接下来将安装包(eCognition Developer 9.01 x64\patch\Program Files\原创 2021-06-08 17:28:00 · 7383 阅读 · 75 评论 -
ENVI 5.3遥感(无人机)影像的镶嵌(拼接)
图像镶嵌,对一幅或若干幅图像通过预处理、几何镶嵌、色调调整、去重叠等处理,镶嵌到一起生成一幅大的图像的影像处理方法。要求是尽量是镶嵌后的影像没有镶嵌缝、图像质量不下降、色彩均衡等。ENVI5.3的图像镶嵌功能可提供交互式的方式,将有地理坐标或没有地理坐标的多幅图像合并,生成一幅单一的合成图像。下面向介绍基于ENVI5.3的遥感图像镶嵌。1.添加工具打开ENVI5.3添加所镶嵌的影像。在Toolbox中,打开Mosaicking→Seamless Mosaic,点击Seamless Mosaic面板左原创 2021-05-31 19:43:05 · 16311 阅读 · 13 评论 -
深度学习遥感图像分类常用数据集简介以及下载地址
UC Merced Land-Use Data Set图像像素大小为256*256,总包含21类场景图像,每一类有100张,共2100张。下载地址:http://weegee.vision.ucmerced.edu/datasets/landuse.htmlWHU-RS19 Data Set图像像素大小为600*600,总包含19类场景图像,每一类大概50张,共1005张。下载地址:http://dsp.whu.edu.cn/cn/staff/yw/HRSscene.htmlSIRI-.原创 2020-12-25 09:17:47 · 12862 阅读 · 3 评论 -
迁移学习相关论文 代码
7种常见的迁移学习一、 Domain Adaptation 领域自适应1 动机领域自适应是一种迁移学习,它将不同源领域的数据或特征映射到同一个特征空间,以便于利用其源领域数据或特征来增强目标领域的训练,进而达到更好的训练效果。领域自适应学习不要求训练数据和测试数据一定具有相同的分布。2 目的利用数据或特征更多的源领域来提升数据或特征相对较少的目标领域的模型性能。.3论文和代码论文:https://arxiv.org/abs/1707.05956,ICCV 2017代码:https://git原创 2020-12-24 14:37:31 · 367 阅读 · 0 评论 -
基于python3的Opencv图像处理教程(从零到实践)(贾志刚)pdf笔记、代码
课件+网上找的相关知识讲解+代码+代码注释百度网盘链接:https://pan.baidu.com/s/1Vg4Ir53u4OriNiwFjE9ucQ提取码:nbyl原创 2020-08-15 22:22:22 · 2661 阅读 · 0 评论 -
【OpenCv 4 Python 3.7】模糊操作(均值模糊 中值模糊 自定义模糊 高斯模糊)
一、均值模糊 中值模糊 自定义模糊基于离散卷积定义好每个卷积核不同卷积核得到不同的卷积效果模糊是卷积的一种表象代码实现:import cv2 as cvimport numpy as npdef blur_demo(image): #均值模糊(去噪) dst = cv.blur(image, (5, 5)) #卷积层 5行5列 cv.imshow("blur_demo", dst)def median_blur_demo(image): #中值模糊(去噪:椒原创 2020-08-15 21:58:17 · 834 阅读 · 0 评论 -
【OpenCv 4 Python 3.7】ROI与泛洪填充
ROI(Region of interst感兴趣的区域),如何获取 numpy获取ROI 泛洪填充泛洪填充,如何填充一个对象内部区域FLOODFILL_FIXED_RANGE – 改变图像,泛洪填充FLOODFILL_MASK_ONLY – 不改变图像、只填充遮罩层本身、忽略新的颜色值参数 floodFill(Mat image, Mat mask, Point seedPoint, Scalar newVal) floodFill(image, mask, seedPoin.原创 2020-08-15 21:47:43 · 214 阅读 · 0 评论 -
【OpenCv 4 Python 3.7】色彩空间(颜色转换)
色彩空间(一)(Color Space)灰度色彩空间单通道,取值范围[0,255]RGB色彩空间(opencv中习惯用BGR)计算机色彩显示器和彩色电视机显示色彩的原理一样,都是采用R、G、B相加混色的原理,通过发射出三种不同强度的电子束,使屏幕内侧覆盖的红、绿、蓝磷光材料发光而产生色彩。这种色彩的表示方法称为RGB色彩空间表示。在RGB颜色空间中,任意色光F都可以用R、G、B三色不同分量的相加混合而成:F=r[R]+r[G]+r[B] F=r[R]+r[G]+r[B]F=r[R]+r[G原创 2020-08-15 21:41:33 · 399 阅读 · 0 评论 -
【OpenCv 4 Python 3.7】Numpy数组操作
图片以矩阵的形式存在电脑里,需要用到数组操作来完成对图像的处理Numpy数组操作Numpy包介绍-www.numpy.org 遍历数组中的每个像素点 修改数组中像素点的值 data\dtype\size\shape\len常用的有两个API: zeros和ones1 np.ones(size) 可以创建任意维度的数组,各个元素值均为1 2 np.zeros(size,dtype) 同上,但各个元素值为0.默认元素类型为浮点数使用示例: 1 img = np.zeros(原创 2020-08-15 21:09:13 · 258 阅读 · 0 评论 -
【OpenCv 4 Python 3.7】图像加载、显示、保存
在新版本的OpenCV4中,最简单的图像载入和显示只需要3句代码,非常便捷。这三句代码分别对应了三个函数,他们分别是:imread( ), namedWindow( )以及imshow( )。我们依次来解析一下这三个函数。1.imread函数首先,我们看imread函数,可以在OpenCV官方文档中查到其原型如下:Mat imread(const string& filename, intflags=1 );■ 第一个参数,const string&类型的filename,填我们原创 2020-08-15 21:00:12 · 387 阅读 · 0 评论 -
【OpenCv 4 Python 3.7】数字验证码识别
Tesserct-OCR:下载地址tesseract-ocr-setup-3.05.00dev-205-ge205c59.exe数字验证码识别:OpenCV+Tesserct-OCR OpenCV预处理 Tesserct-OCR验证码识别步骤: 预处理 – 去除干扰线与点 不同的结构元素中选择 Image与numpy array相互转化 识别与输出API层面: 学会使用OpenCV 形态学与二值化API做预处理 使用Tesseract-OCR做文字识别 识别率问原创 2020-08-15 20:41:47 · 430 阅读 · 0 评论 -
【OpenCv 4 Python 3.7】人脸检测 (Haar\LBP)
级联分类器首先研究级联分类器。理论级联分类器,即使用类 Haar 特征工作的级联增强分类器,是集成学习的一种特殊情况,称为 boost。它通常依赖于 Adaboost 分类器(以及其他模型,如 Real Adaboost、Gentle Adaboost 或 Logitboost)。级联分类器在包含检测目标的几百个样本图像以及不包含检测目标的其他图像上进行训练。级联分类器1、Haar 特征选择人脸上最常见的一些共同特征如下:与脸颊相比,眼部颜色较深与眼睛相比,鼻梁区域较为明亮眼睛、嘴巴、鼻原创 2020-08-14 21:50:15 · 800 阅读 · 0 评论 -
【OpenCv 4 Python 3.7】分水岭算法
分水岭算法使用分水岭算法进行图像分割 (一)获取灰度图像,二值化图像,进行形态学操作,消除噪点 (二)在距离变换前加上一步操作:通过对上面形态学去噪点后的图像,进行膨胀操作,可以得到大部分都是背景的区域(原黑色不是我们需要的部分是背景) (三)使用距离变换distanceTransform获取确定的前景色相关知识补充(重点) (四)在获取了背景区域和前景区域(其实前景区域是我们的种子,我们将从这里进行灌水,向四周涨水,但是这个需要在markers中表示)后,这两个区域中有未重合部分(注1原创 2020-08-14 21:09:29 · 386 阅读 · 0 评论 -
【OpenCv 4 Python 3.7】图像形态学操作之顶帽、黑帽、形态学梯度
1、 顶帽是原图像与开操作之间的差值图像开操作先腐蚀后膨胀,开操作之后就只剩下白色的矩形,原图减去矩形就是下面的。。2、黑帽是闭操作图像与源图像的差值图像3、形态学梯度 基本梯度 基本梯度是用膨胀后的图像减去腐蚀后的图像得到差值图像,称为梯度图像也是opencv中支持的计算形态学 梯度的方法,而此方法得到梯度有被称为基本梯度。 内部梯度 是用原图像减去腐蚀之后的图像得到差值图像,称为图 像的内部梯度 外部梯度 图像膨胀之后再减去原来的图像得到的差值图像,称为 图像的外部梯度代码原创 2020-08-13 22:04:00 · 806 阅读 · 0 评论 -
【OpenCv 4 Python 3.7】图像形态学操作之开闭操作
1、开操作:图像形态学的重要操作之一,基于膨胀与腐蚀操作组合形成的。 主要是应用在二值图像分析中,灰度图像亦可。 开操作=腐蚀+膨胀, 输入图像 + 结构元素2、闭操作 图像形态学的重要操作之一,基于膨胀与腐蚀操作组合形成的。 主要是应用在二值图像分析中,灰度图像亦可。 闭操作=膨胀+腐蚀, 输入图像 + 结构元素开闭操作的作用: 去除小的干扰块-开操作 填充闭合区域 – 闭操作 水平或者垂直线提取注意:不同结构元素结果不一样!!!代码实现:#结构元素的选取和大原创 2020-08-13 21:23:31 · 333 阅读 · 0 评论 -
【OpenCv 4 Python 3.7】图像形态学操作之膨胀腐蚀
形态学操作(morphology operators)-膨胀与腐蚀(Dilation与Erosion)。图像形态学操作1、图像形态学操作 – 基于形状的一系列图像处理操作的合集2、形态学有四个基本操作:腐蚀、膨胀、开、闭3、膨胀与腐蚀是图像处理中最常用的形态学操作手段4、腐蚀和膨胀是对白色部分(高亮部分)而言的,不是黑色部分。膨胀就是图像中的高亮部分进行膨胀,“领域扩张”,效果图拥有比原图更大的高亮区域。腐蚀就是原图中的高亮部分被腐蚀,“领域被蚕食”,效果图拥有比原图更小的高亮区域。5、膨胀与腐原创 2020-08-12 22:39:12 · 629 阅读 · 0 评论 -
【OpenCv 4 Python 3.7】对象测量(面积,周长,质心,边界框等)
opencv 对象测量1、 opencv 中轮廓特征包括:如面积,周长,质心,边界框等*弧长与面积测量*多边形拟合*获取轮廓的多边形拟合结果2、python-opencv API提供方法:cv2.moments() 用来计算图像中的中心矩(最高到三阶),cv2.HuMoments() 用于由中心矩计算Hu矩,同时配合函数cv2.contourArea()函数计算轮廓面积,和cv2.arcLength()来计算轮廓或曲线长度*cv.approxPolyDP(多边形逼近原创 2020-08-12 22:07:03 · 4098 阅读 · 7 评论 -
【OpenCv4 运行错误】ValueError: not enough values to unpack (expected 3, got 2)
OpenCV 3 版本输出3个值cloneImage, contours, hierarchyOpenCV 4 版本输出2个值contours, hierarchyOpenCV旧版,返回三个参数:要想返回三个参数:把OpenCV 降级成3.4.3.18 就可以了,在终端输入pip install opencv-python==3.4.3.18cloneImage, contours, hierarchy = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHA原创 2020-08-12 09:06:36 · 906 阅读 · 0 评论 -
【OpenCv 4 Python 3.7】轮廓发现
轮廓发现—是基于图像边缘提取的基础寻找对象轮廓的方法,所以边缘提取的阈值选定会影响最终轮廓发现的结果。介绍两种API使用:-cv.findContours 发现轮廓-cv.drawContours 绘制轮廓一.Opencv发现轮廓的函数为:findContours(image, mode, method[, contours[, hierarchy[, offset]]]) -> image, contours, hierarchy各参数含义:1、image参数表示8位单通道图像矩阵,可原创 2020-08-12 09:00:10 · 339 阅读 · 0 评论 -
【OpenCv 4 Python 3.7】圆检测
圆检测技术:圆检测技术目前用处还是特别的广泛的,锅炉、管道等类似的情况,我们不能切开或者打孔去测试流量,温度等参数。这是我们可以在管道上画一个圆,用摄像机去检测圆中心,进而测试出我们需要的信息。对于一个圆,就需要用三个参数来确定。使用Hough梯度法的依据是圆心一定出现在圆上的每个点的模向量上,圆上点的模向量的交点就是圆心的所在位置。Hough梯度法的第一步就是找到这些圆心,这样三维的累加平面就转化为二维累加平面。第二步就是根据所有候选中心的边缘非零像素对其的支持程度来确定半径。 从平面坐标到极坐原创 2020-08-11 22:06:00 · 327 阅读 · 0 评论 -
【OpenCv 4 Python 3.7】直线检测
直线检测可以通过OpenCV的HoughLines和HoughLinesP函数来完成,它们仅有的差别是:第一个函数使用标准的Hough变换,第二个函数使用概率Hough变换,即只通过分析点的子集并估计这些点都属于一条直线的概率,这在计算速度上更快。霍夫直线检测的两种方法一:HoughLines方法cv2.HoughLines函数输出的是[float, float]形式的ndarray,其中每个值表示检测到的线(ρ , θ)中浮点点值的参数。第一个参数image:是canny边缘检测后的图像第二个参原创 2020-08-11 22:11:21 · 528 阅读 · 0 评论 -
【OpenCv 4 Python 3.7】Canny边缘检测(边缘提取)
Canny边缘检测的概念OpenCV函数用于:cv2.Canny()步骤:高斯模糊 - GaussianBlur灰度转换 - cvtColor计算梯度 – Sobel/Scharr非最大信号抑制高低阈值输出二值图像Canny边缘检测:是一种流行的边缘检测算法。它是由约翰·F·坎尼于1986年开发的。这是一个多阶段的算法。1、降噪由于边缘检测对图像中的噪声很敏感,第一步是用5x5高斯滤波器去除图像中的噪声。2、灰度转换 - cvtColor3、图像强度梯度的求取然后在水平方向和原创 2020-08-10 22:14:21 · 1149 阅读 · 0 评论 -
【OpenCv 4 Python 3.7】图像梯度,图像边界
学习图像梯度,图像边界等 梯度简单来说就是求导。OpenCV提供了三种不同的梯度滤波器,或者说高通滤波器:Sobel,Scharr和Lapacian。Sobel,Scharr其实就是求一阶或二阶导。Scharr是对Sobel的部分优化。Laplacian是求二阶导。1.Sobel算子和Scharr算子Sobel算子是高斯平滑和微分操作的结合体,所以他的抗噪声能力很好。你可以设定求导的方向(xorder 或 yorder)。还可以设定使用的卷积核大小(ksize)。当ksize=-1时,会使用33原创 2020-08-10 21:32:32 · 255 阅读 · 0 评论 -
【OpenCv 4 Python 3.7】图像金字塔
理论知识:1、图像金字塔(Image Pyramid)图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构。图像金字塔最初用于机器视觉和图像压缩,一幅图像的 金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。常见两类图像金字塔高斯金原创 2020-08-10 20:56:07 · 357 阅读 · 0 评论 -
【OpenCv】(python)超大图像的二值化方法(空白过滤)
超大图像的二值化方法(1).可以采用分块方法,(2).先缩放处理就行二值化,然后还原大小1、局部阈值、全局阈值import cv2 as cvimport numpy as np"""def big_image_binary(image): print(image.shape) #(4208, 2368, 3) #超大图像,屏幕无法显示完整 cw,ch = 256,256 h,w = image.shape[:2] gray = cv.cvtColor(i原创 2020-08-09 22:10:02 · 652 阅读 · 0 评论 -
[OpenCv](python)图像二值化
图像二值化import cv2 as cvimport numpy as np“”"1、 全局阈值函数cv2.threshold(src, thresh, maxval, type[, dst]) -> retval, dst参数: src - 输入数组/图像(多通道,8位或32位浮点)thresh - 阈值maxval - 最大值,与#THRESH_BINARY和#THRESH_BINARY_INV阈值类型一起使用的最大值(maximum value)type - 阈值类型ds原创 2020-08-09 20:55:34 · 411 阅读 · 0 评论 -
【OpenCV 4】(python 3.7)模板匹配原理及代码实现
模板匹配:是一种在较大的图像中搜索和查找模板图像位置的方法。OpenCV带有一个函数用于此目的.它只是简单地将模板图像放在输入图像上(就像在2D卷积中那样),并在模板图像下对输入图像的模板和补丁进行比较,在OpenCV中实现了几种比较方法,它返回一个灰度图像,每个像素表示该像素区域与模板的匹配程度.如果输入图像的大小(W x H)且模板图像的大小(w x h),则输出图像的大小为(W-w + 1,H-h + 1).获得结果后,可以使用函数查找最大/最小值的位置。将其作为矩形的左上角,并将(w,h)作为矩原创 2020-08-07 22:13:00 · 623 阅读 · 0 评论 -
【OpenCv】(python)直方图反向投影
直方图反向投影:反向投影可以用来做图像分割,寻找感兴趣区间。它会输出与输入图像大小相同的图像,每一个像素值代表了输入图像上对应点属于目标对象的概率,简言之,输出图像中像素值越高的点越可能代表想要查找的目标。直方图投影经常与camshift(追踪算法)一起使用。算法实现的方法:首先要为包含我们感兴趣区域的图像建立直方图(紫色衣服)。被查找的对象最好是占据整个图像上。最好使用颜色直方图,物体的颜色信息比灰度图像更容易被分割和识别。再将颜色直方图投影到输入图像查找目标,也就是找到输入图像中每一个像素点的像素值原创 2020-08-07 21:38:36 · 364 阅读 · 0 评论 -
[Opencv](python)直方图均衡化与直方图比较
1,直方图均衡化 (Histogram Equalization)假如图像的灰度分布不均匀,其灰度分布集中在较窄的范围内,使图像的细节不够清晰,对比度较低。直方图均衡化,对图像进行非线性拉伸,重新分配图像的灰度值,使一定范围内图像的灰度值大致相等。这样,原来直方图中间的峰值部分对比度得到增强,而两侧的谷底部分对比度降低,输出图像的直方图是一个较为平坦的直方图。使图像的灰度范围拉开或使灰度均匀分布,从而增大反差,使图像细节清晰,以达到增强的目的。均衡化的基本思想是:尽量使得每个灰度级的像素数量相等。直方图原创 2020-08-05 22:23:52 · 1149 阅读 · 0 评论