![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图像处理
点PY
If you cannot risk, you cannot grow. If you cannot grow, you cannot become you best. If you cannot become you best, you cannot be happy. If you cannot be happy, what else matters?
展开
-
DJ无人机延时摄影后处理
文章目录硬件软件操作步骤硬件DJ无人机软件Adobe Premiere Pro 2020操作步骤新建项目导入素材选中第一张图片,点击图像序列新建序列将图像素材集拖入到新建序列中效果控件编辑,进行适当的缩放变形稳定器,防抖。将该功能拖拽到图像序列中。导出...原创 2022-05-05 21:57:15 · 348 阅读 · 0 评论 -
基于python的灰度直方图绘制
import numpy as npimport matplotlib.pyplot as pltfrom skimage import ioimport cv2if __name__ == '__main__': imgPath = 'background.png' img = io.imread(imgPath) n, bins, patches = plt.hist(img.flatten(), bins=256) plt.savefig("his.png")原创 2022-02-27 23:39:50 · 1922 阅读 · 0 评论 -
二值灰度图到实例化RGB图
实例化效果图代码from scipy.ndimage.morphology import distance_transform_edtimport numpy as npimport cv2 as cvimport matplotlib.pyplot as pltfrom scipy import ndimagefrom skimage.segmentation import find_boundariesimport globimport tqdmimport osimport g原创 2021-10-20 09:06:24 · 445 阅读 · 3 评论 -
图像和热力图合成
数据图像、热力图热力图生成以及与图像合成代码import cv2import matplotlib.pyplot as pltimport numpy as npdef make_gaussian(size, sigma=10, center=None): """ Make a square gaussian kernel. size: is the dimensions of the output gaussian sigma: is full-width-half原创 2021-09-18 17:51:26 · 1694 阅读 · 1 评论 -
判断二值图上两点是否共线
步骤概述首先计算两点间的欧式距离计算包含两点的最小外接矩形内的像素值为1的和比较二者的大小代码import cv2import numpy as npimport matplotlib.pyplot as pltdef compute_Euclidean_distance(p1, p2): x1, y1 = p1 x2, y2 = p2 distance =np.sqrt(np.sum(np.square(x1-x2)+np.square(y1-y2)))原创 2021-08-19 17:47:54 · 336 阅读 · 0 评论 -
检测二值骨架栅格图的断点以及断线方向、十、丁字路口点
应用背景下面介绍一种方法,对骨架线的断点进行提取。代码import numpy as npimport cv2 as cvimport matplotlib.pyplot as pltfrom skimage import morphologyimport osdef detect_breakpoints(img): r, c = img.shape new_image = np.zeros((r, c)) detection_operator = np.arr原创 2021-08-12 14:27:33 · 808 阅读 · 3 评论 -
Dijkstra 算法教程
文章目录IntroductionDijkstra 算法Introduction加权图在一些应用中,是非常有用的数据作为带有加权边缘的图形模型。这些图形被称为“加权关系图”。什么是“加权边”,你不知道?考虑一下这个图表:让我们想象一下,每个节点都是一个城市,每边是两个城市之间的现有道路。这意味着你可以从直接开到B中。但是,你不能开车从A到d直接,因为有这些城市之间没有道路; 相反,例如,你需要去从A到B,然后从B到D.现在,不是每一条道路是平等的。它们有的长,有的不是在良好的状态(所以你需要慢慢地原创 2021-08-12 10:40:18 · 361 阅读 · 0 评论 -
图像配准/对齐
文章目录1. 理论基础2. 最小二乘法2.1 从平移说起2.2 仿射变换2.3 同态映射(Homographies)2.4 总结3 RANSAC(随机抽样一致)3.1 基本过程1. 理论基础在图像的变换和卷绕中,我们已经建立了一个图片经过变换成为另一个图片的过程,事实上,我们在进行图像配准的时候,就是给出了两个图像,让我们判断图像之间的变换关系的过程。如果图像A经过一些变换能得到图像B,我们只需要计算出这组变换,就可以得到图像的配准,并进行拼接。所以,寻找图片中与所有匹配项最符合的变换T就是图像配原创 2021-07-30 20:40:51 · 4977 阅读 · 2 评论 -
RANSAC算法简介
文章目录1 算法简介2 基本思想3 参数4 应用案例(直线拟合)1 算法简介RANSAC算法的基本假设是样本中包含正确数据(inliers,可以被模型描述的数据),也包含异常数据(outlies,偏离正常范围很远、无法适应数学模型的数据),即数据集中含有噪声。这些异常数据可能是由于错误的测量、错误的假设、错误的计算等产生的。同时RANSAC也假设,给定一组正确的数据,存在可以计算出符合这些数据的模型参数的方法。2 基本思想RANSAC基本思想描述如下:考虑一个最小抽样集的势为n的模型(n为初始化原创 2021-07-30 19:45:02 · 1267 阅读 · 0 评论 -
SIFT算法简介
文章目录1 算法提出的背景2 算法思想3 SIFT算法实现物体识别主要有三大工序1 算法提出的背景成像匹配的核心问题是将同一目标在不同时间、不同分辨率、不同光照、不同位姿情况下所成的像相对应。传统的匹配算法往往是直接提取角点或边缘,对环境的适应能力较差,急需提出一种鲁棒性强、能够适应不同光照、不同位姿等情况下能够有效识别目标的方法。1999年British Columbia大学大卫.劳伊( David G.Lowe)教授总结了现有的基于不变量技术的特征检测方法,并正式提出了一种基于尺度空间的、对图像缩放原创 2021-07-30 19:17:30 · 502 阅读 · 1 评论 -
基于labelme的json2mask等文件
转化后的数据mask叠加到影像上代码import osimport globfrom labelme import utilsimport numpy as npfrom labelme.utils import imageimport argparseimport jsonimport matplotlib.pyplot as pltimport cv2import gdalToolsif __name__ == '__main__': labellist = g原创 2021-07-28 16:01:18 · 526 阅读 · 0 评论 -
灰度二值图转图结构
数据准备代码image2graph.py#import rdp# Code Copied From Favyenimport scipy.ndimageimport skimage.morphologyimport osfrom PIL import Imageimport cv2import mathimport numpyimport numpy as np from multiprocessing import Poolimport subprocessimport原创 2021-07-19 22:22:37 · 711 阅读 · 5 评论 -
基于二值图的角点检测
简述cv2.goodFeaturesToTrack()函数是用来跟踪检测图像中的角点参数image: 输入图像,是八位的或者32位浮点型,单通道图像,所以有时候用灰度图 maxCorners:返回最大的角点数,是最有可能的角点数,如果这个参数不大于0,那么表示没有角点数的限制。qualityLevel:图像角点的最小可接受参数,质量测量值乘以这个参数就是最小特征值,小于这个数的会被抛弃。minDistance:返回的角点之间最小的欧式距离。mask: 检测区域。如果图像不是空的(它需要具有原创 2021-03-02 14:12:49 · 2026 阅读 · 11 评论 -
基于自选种子点的区域生长(python)
Introduction当单一的分割算法的提取结果出现欠分割问题时,需要考虑加入影像后处理,进行图像同质区的合并。本博文将简单介绍下如何利用区域生长法来进行该项处理。如下图所示,最右边是欠分割掩膜,中间是同质区合并后的结果。区域生长法的过程:对图像顺序扫描!找到第1个还没有归属的像素, 设该像素为(x0, y0);以(x0, y0)为中心, 考虑(x0, y0)的8邻域像素(x, y),如果(x, y)满足生长准则, 将(x, y)与(x0, y0)合并(在同一区域内), 同时将(x, y)压入原创 2021-07-03 09:34:08 · 4759 阅读 · 9 评论 -
获取二值掩膜内各图斑的内部点
结果话不多说,直接上结果,获取的点为圆心。代码# -*- coding:utf-8 -*-import cv2import numpy as npimport gdalToolsfrom scipy import ndimage as ndiimport matplotlib.pyplot as plt####################################################################################if __n原创 2021-07-02 16:39:56 · 484 阅读 · 0 评论 -
无监督图像分割(kmeans)
简单介绍在众多聚类算法中,K-Means 算得上是其中一个经典的算法之一了,它属于无监督学习成员的一份子,训练并分类数据的过程中,不需要标签的辅助就能够掌握每一比数据之间的潜在关系,而这个关系则是通过两个点之间的距离远近来判定,离得远的表示关系小,离得近的表示关系大。代码(python)import numpy as npimport matplotlib.pyplot as pltimport cv2from sklearn.cluster import KMeansimg = cv2.原创 2021-06-25 09:09:42 · 2776 阅读 · 0 评论 -
基于图的图像分割(Graph-BasedImageSegmentation)
算法介绍https://blog.csdn.net/huixingshao/article/details/42642973/与slic算法的比较from skimage import ioimport matplotlib.pyplot as pltfrom skimage.segmentation import slic, felzenszwalbfrom skimage.util import img_as_floatfrom skimage.segmentation import ma原创 2021-06-20 14:01:32 · 472 阅读 · 0 评论 -
最小面积矩形拟合
OpenCV在轮廓拟合中支持两个轮廓外接矩形求取函数,它们分别是:boundingRect与minAreaRect,对同一个轮廓,它们运行结果显示如下:其中绿色是运行boundingRect函数返回得到矩形框,红色是运行minAreaRect返回得到矩形框。白色区域是二值图像的轮廓。这两个函数的详细解释如下:Rect cv::boundingRect( InputArray array // 轮廓点)返回的矩形Rect对象;RotatedRect cv::minAreaRect(原创 2021-04-23 21:33:52 · 903 阅读 · 3 评论 -
图像分割之主动轮廓模型
code:https://github.com/pmneila/morphsnakes文章目录分割效果![在这里插入图片描述](https://img-blog.csdnimg.cn/20210114151456792.gif#pic_center)代码示例分割效果代码示例def example_lakes(): logging.info('Running: example_lakes (MorphACWE)...') # Load the image. imgcolor原创 2021-01-14 15:16:23 · 1694 阅读 · 5 评论 -
基于遥感影像的随机森林多分类应用示例(python)
文章目录1. 数据准备2. 相关代码3. 结果展示1. 数据准备遥感影像n个shp文件(n为类别数,其中包括背景类)截图如下2. 相关代码# -*- coding: utf-8 -*-import os, sys, timeimport gdalfrom osgeo import ogrfrom osgeo import gdalfrom osgeo import gdal_array as gafrom gdalconst import *from skimage impo原创 2020-11-04 16:20:54 · 4330 阅读 · 16 评论 -
图像处理之骨架提取
https://wangsp.blog.csdn.net/article/details/107330351原创 2020-11-02 13:38:52 · 2807 阅读 · 0 评论 -
图像处理之直方图匹配
前言直方图匹配可以使得影像A的灰度分布变换为影像B的灰度分布。代码#coding=utf-8import osimport matplotlibimport numpy as npfrom numba import jitfrom osgeo import gdalfrom PIL import Imagefrom matplotlib import pyplot as pltimport cv2 as cv@jitdef arrayToHist(grayArray,nums):原创 2020-09-02 10:33:23 · 805 阅读 · 0 评论 -
图像处理之图像模糊与平滑等操作
图像模糊与平滑使用低通滤波器可以达到图像模糊的目的。这对与去除噪音很有帮助。其实就是去除图像中的高频成分(比如:噪音,边界)。所以边界也会被模糊一点。(当然,也有一些模糊技术不会模糊掉边界)。OpenCV 提供了四种模糊技术。1.平均这是由一个归一化卷积框完成的。他只是用卷积框覆盖区域所有像素的平均值来代替中心元素。可以使用函数 cv2.blur() 和 cv2.boxFilter() 来完这个任务。import cv2import numpy as npfrom matplotlib原创 2020-08-06 16:22:06 · 1501 阅读 · 5 评论 -
图像处理之边缘提取
效果:代码:import numpy as npfrom matplotlib import pyplot as pltimport cv2 as cvinit = cv.imread('JAX_Tile_004_RGB.png', 0)init2 = cv.Canny(init, 30, 100)plt.subplot(121)plt.imshow(init)plt.subplot(122)plt.imshow(init2)plt.show()原创 2020-08-04 15:09:14 · 536 阅读 · 0 评论 -
图像处理之超像素分割(SLIC)
超像素超像素最直观的解释,便是把一些具有相似特性的像素“聚合”起来,形成一个更具有代表性的大“元素”。而这个新的元素,将作为其他图像处理算法的基本单位。一来大大降低了维度;二来可以剔除一些异常像素点。代码# coding=utf-8# 导入相应的python包import argparsefrom skimage import ioimport matplotlib.pyplot as pltfrom skimage.segmentation import slicfrom skimag原创 2020-08-02 23:21:24 · 12954 阅读 · 1 评论 -
图像处理之填充多边形
大致流程:新建一个全是一的掩膜;减去多边形的边界,得到两个块状物;判断块状物是否在边界,在边界的块状物去掉,得到填充后的效果def segmentation_pipe(img ,cfg): gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY) ret, thresh = cv.threshold(gray, 240, 255, cv.THRESH_BINARY) thresh[thresh > 0] = 1 out = di.原创 2020-07-31 17:05:03 · 353 阅读 · 0 评论 -
影像后处理:移除小物体和填补空洞
from skimage import morphologyimport skimageimport cv2import numpy as npimport gdalfrom scipy import ndimage as ndiimport matplotlib.pyplot as pltdef read_img(filename): dataset=gdal.Open(filename) im_width = dataset.RasterXSize im_he原创 2020-07-22 13:16:09 · 1087 阅读 · 4 评论