自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ibelievesunshine的博客

热爱生活,寻找新鲜感

  • 博客(343)
  • 资源 (1)
  • 收藏
  • 关注

原创 vs2019配置opencv4.3

看了网上很多教程,总是配置失败。经过两天的奋战,总算是找到了一篇可以成功配置运行环境的教程:https://www.cnblogs.com/wbyixx/p/12238317.html基于 VS2019 配置 opencv4.x创建新项目添加主函数文件配置注意,如果直接使用项目的属性去配置,那么创建新的项目的时候,还需要再配置一遍,在属性管理器里配置,创建新项目的时候,会自动应用接下来,开始为软件配置目录和附加项。右键点击【属性管理器】中的【Debug | x64】

2020-07-19 02:54:37 1238

原创 解决python安装第三方库速度很慢的问题(opencv为例)

安装时使用国内镜像链接阿里云http://mirrors.aliyun.com/pypi/simple/中国科技大学https://pypi.mirrors.ustc.edu.cn/simple/豆瓣(douban)http://pypi.douban.com/simple/清华大学https://pypi.tuna.tsinghua.edu.cn/simple/中国科学技术大学http://pypi.mirrors.ustc.edu.cn/simple/使用指令指定源:...

2020-06-16 12:05:58 1792 1

原创 pytorch 获取模型的参数数量

# Find total parameters and trainable parameters total_params = sum(p.numel() for p in model.parameters()) print(f'{total_params:,} total parameters.') total_trainable_params = sum(p.numel() for p in model.parameters() if p.requires_grad)...

2020-05-25 09:07:52 2603

原创 opencv kmeans聚类 实现图像色彩量化

kmeans聚类实现灰度图像色彩量化(使用更少灰度值表示原灰度图像)# coding: utf-8import cv2import numpy as npimport matplotlib.pyplot as plt#读取原始图像灰度颜色img = cv2.imread('d:/paojie_g.jpg', 0) #print(img.shape)#获取图像高度、宽度rows...

2020-04-22 15:08:19 2198 1

原创 opencv Scharr、Canny、LOG边缘提取效果对比

# -*- coding: utf-8 -*-import cv2 as cvimport numpy as np import matplotlib.pyplot as plt#读取图像img = cv.imread('d:/paojie.png')img1 = cv.cvtColor(img, cv.COLOR_BGR2RGB)#转换为灰度图像grayImage = cv...

2020-04-22 13:48:14 522

原创 opencv 不同边缘检测算子效果比较

# -*- coding: utf-8 -*-import cv2 as cv import numpy as np import matplotlib.pyplot as plt#读取图像img = cv.imread('d:/paojie.png')img1 = cv.cvtColor(img, cv.COLOR_BGR2RGB)#灰度化处理图像grayImage = ...

2020-04-22 10:50:54 1501

原创 opencv 图像傅里叶变换

傅里叶变换dft = cv.dft(np.float32(img),flags = cv.DFT_COMPLEX_OUTPUT)傅里叶逆变换img_back = cv.idft(f_ishift)实验:将图像转换到频率域,低通滤波,将频率域转回到时域,显示图像import numpy as npimport cv2 as cvfrom matplotlib import pypl...

2020-04-12 11:59:10 443 1

原创 opencv 画出各种滤波器二维图像 证明拉普拉斯滤波器是一个高通滤波器

傅里叶变换dft = cv.dft(np.float32(img),flags = cv.DFT_COMPLEX_OUTPUT)傅里叶逆变换img_back = cv.idft(f_ishift)实验:将图像转换到频率域,低通滤波,将频率域转回到时域,显示图像...

2020-04-12 11:17:39 966

原创 opencv库skimage 实现Canny边缘探测算法

Canny算法请参考:Canny算法python手动实现请参考:Canny边缘检测算法原理及opencv实现skimage库中函数skimage.feature.canny(image, sigma=1.0, low_threshold=None, high_threshold=None, mask=None, use_quantiles=False)sigma:高斯滤波器的标准差lo...

2020-04-07 19:07:51 1749

原创 python库skimage 绘制二值图像的凸壳

二值图像的凸壳指的是包围输入二值图像白色区域的最小的凸多边形的像素集合。skimage中的函数from skimage.morphology import convex_hull_imagechull = convex_hull_image(image)完整代码:"""===========Convex Hull===========The convex hull of a ...

2020-04-07 15:09:19 1169

原创 python库skimage 常值轮廓寻找并标记

我们使用行进正方形方法找到图像中的常值轮廓函数:#Find contours at a constant value of 0.8contours = measure.find_contours(r, 0.8)使用它,需要:from skimage import measure"""===============Contour finding===============We ...

2020-04-07 13:30:59 2153

原创 python库skimage 给灰度图像染色

灰度图像染成红色和黄色# 1.将灰度图像转换为RGB图像image = color.gray2rgb(grayscale_image)# 2.保留红色分量和黄色分量red_multiplier = [1, 0, 0]yellow_multiplier = [1, 1, 0]# 3.显示图像fig, (ax1, ax2) = plt.subplots(ncols=2, figsize=...

2020-04-07 12:54:02 1756

原创 python库skimage 图像直方图均衡化、自适应均衡化、对比度拉伸实现

直方图全局均衡化from skimage import exposure# Equalizationimg_eq = exposure.equalize_hist(img)直方图自适应均衡化# Adaptive Equalization# 参数2:Clipping limit, normalized between 0 and 1 (higher values give more c...

2020-04-07 10:31:11 2467

原创 python库skimage 对图像进行gamma校正和log校正

Gamma校正Gamma校正是对输入图像灰度值进行的非线性操作,使输出图像灰度值与输入图像灰度值呈指数关系:这个指数即为Gamma。Gamma校正的原理很简单,就一个很简单的表达式,如下图所示:其中V_in的取值范围是0~1,最重要的参数就是公式中的γ参数!γ的值决定了输入图像和输出图像之间的灰度映射方式,即决定了是增强低灰度值区域还是增高灰度值区域。γ>1时,图像的高灰度区域...

2020-04-06 21:32:10 2155

原创 python库skimage 图像直方图局部均衡化

函数from skimage import exposurefrom skimage.morphology import diskfrom skimage.filters import rank# Global equalizeimg_rescale = exposure.equalize_hist(img)# Local Equalizationselem = disk(30)...

2020-04-06 16:56:51 1113

原创 python库skimage 将针对灰度图像的滤波器用于RGB图像

有许多滤波器设计用于灰度图像但是不能用于彩色图像。为了简化创建函数,使其能够用于RGB图像,scikit-image图像处理库提供了adapt_rgb装饰器。实际使用adapt_rgb装饰器,你必须决定如何调整RGB图像以使灰度滤波器能够用于RGB图像。有两个预定义的处理方式:“每个通道”:传输RGB的每个通道给滤波器,处理后,将它们按照rgb顺序整合到RGB图像。“hsv_value”...

2020-04-06 14:33:46 813

原创 python库skimage 绘制直方图;绘制累计直方图;实现直方图匹配(histogram matching)

绘制直方图from skimage import exposure# 绘制彩色图像的c通道的直方图img_hist, bins = exposure.histogram(img[..., c], source_range='dtype')# 以第c行第i列的形式绘制归一化直方图axes[c, i].plot(bins, img_hist / img_hist.max())绘制累积直方...

2020-04-06 11:49:55 3925 1

原创 python的skimage库 图像色彩空间转换 RGB到灰度;RGB到HSV

RGB 到 grayscalefrom skimage.color import rgb2graygrayscale = rgb2gray(original)"""================RGB to grayscale================This example converts an image with RGB channels into an image...

2020-04-05 17:37:18 2025

原创 python的skimage库 图像中值滤波;均值滤波;极大值滤波

使用 view_as_blocks (来源于skimage.util)函数。当我们想要对非重叠图像块执行局部操作时,块视图(view_as_blocks的返回值)非常有用。我们将 图像 astronaut (来源于skimage.data)切成小方块(4*4)。在每个方块内部,我们计算均值、最大值和中位值,然后用这些值表示这个方块的值。处理后结果被放在一起展示,结果中第一张图像为使用三次样条插值...

2020-04-04 15:03:11 2783 1

原创 skimage 图像读取显示

单幅图像读取并显示代码"""读取图像并显示"""import matplotlib.pyplot as pltimport matplotlibfrom skimage import datamatplotlib.rcParams['font.size'] = 18images = ('astronaut', 'binary_blobs', ...

2020-04-04 11:41:32 1155

原创 scikit-image 库简介

scikit-image简写为skimage,基于python脚本语言开发的数字图片处理包。skimage包由许多的子模块组成,各个子模块提供不同的功能。主要子模块列表如下:data子模块学习# 导入data模块from skimage import color,io# 加载data中的图片chelsea = data.logo() io...

2020-04-04 11:04:43 1471

原创 opencv 结合pyqt5 编写简单的图像处理GUI程序

实验目标我们学的内容都是跑在命令行中的,并没有界面,那么”脚本语言”Python如何搭建GUI界面呢?其实Python支持多种图形界面库,如Tk(Tkinter)、wxPython、PyQt等,虽然Python自带Tkinter,无需额外安装包,但我更推荐使用PyQt,一是因为它完全基于Qt,跨平台,功能强大,有助于了解Qt的语法,二是Qt提供了Designer设计工具,界面设计上可以拖控件...

2020-04-03 19:46:21 12531 16

原创 opencv 实现图像时钟

解决方案详解绘制表盘表盘上只有60条分/秒刻线和12条小时刻线,当然还有表盘的外部轮廓圆,也就是重点在如何画72根线。先把简单的圆画出来:import cv2 as cvimport mathimport datetimeimport numpy as npmargin = 5 # 上下左右边距radius = 220 # 圆的半径center = (center_x,...

2020-04-03 14:04:58 997

原创 opencv 实现图像高斯金字塔

函数:dst = cv.pyrDown( src[, dst[, dstsize[, borderType]]] ) # 高斯金字塔下采样参数:src 源图像.dst 输出图像;它有着指定的大小,和源图像有着相同的类型.dstsize 输出图像的大小.borderType 像素外延方法.默认情况下,输出图像的大小为((src.cols+1)/2, (src.rows+1)/2)。...

2020-04-03 13:10:23 520

原创 opencv 实现角点检测 Shi-Tomasi角点检测

角点检测概述角点检测概述Harris角点检测算法手动实现Harris角点检测算法手动实现opencv中使用Harris角点检测opencv中使用Harris角点检测opencv中使用 Shi-Tomasi角点检测函数:corners = cv.goodFeaturesToTrack( image, maxCorners, qualityLevel, minDistance[, cor...

2020-04-03 12:05:15 338

原创 opencv 图像处理应用之车道检测

目标:实际公路的车道线检测素材中车道保持不变,车道线清晰明确,易于检测,是车道检测的基础版本,网上也有很多针对复杂场景的高级实现,感兴趣的朋友可以自行了解。如果我们手动把这部分ROI区域抠出来,就会排除掉大部分干扰。接下来检测直线肯定是用霍夫变换,但ROI区域内的边缘直线信息还是很多,考虑到只有左右两条车道线,一条斜率为正,一条为负,可将所有的线分为两组,每组再通过均值或最小二乘法拟合的方...

2020-04-03 00:36:17 2289 5

原创 opencv 霍夫变换检测直线和圆

霍夫变换霍夫变换原理及python实现opencv 霍夫直线变换OpenCV中用cv.HoughLines()在二值图上实现霍夫变换,函数返回的是一组直线的(r,θ)数据:函数中:参数1:要检测的二值图(一般是阈值分割或边缘检测后的图)参数2:距离r的精度,值越大,考虑越多的线参数3:角度θ的精度,值越小,考虑越多的线参数4:累加数阈值,值越小,考虑越多的线实验:检测图像中的直线...

2020-04-02 12:58:15 904

原创 opencv 模板匹配,在图像中寻找物体

使用模板匹配在图像中寻找物体模板匹配模板匹配就是用来在大图中找小图,也就是说在一副图像中寻找另外一张模板图像的位置:opencv中用 cv.matchTemplate() 实现模板匹配。模板匹配的原理其实很简单,就是不断地在原图中移动模板图像去比较,有6种不同的比较方法,详情可参考:TemplateMatchModes1. 平方差匹配CV_TM_SQDIFF:用两者的平方差来匹配,最好...

2020-04-01 21:58:22 4932 1

原创 opencv 绘制图像直方图,实现直方图均衡化

直方图直方图简单来说就是图像中每个像素值的个数统计,比如说一副灰度图中像素值为0的有多少个,1的有多少个……直方图是一种分析图像的手段:直方图计算opencv库计算直方图使用 cv.calcHist(images, channels, mask, histSize, ranges) 计算,其中:参数1:要计算的原图,以方括号的形式传入,如:[img]参数2:选择图像的某个通道,计算直...

2020-04-01 13:12:56 1339

原创 opencv 凸包讲解和绘制

凸包讲解凸包跟多边形逼近很像,只不过它是物体最外层的”凸”多边形:集合A内连接任意两个点的直线都在A的内部,则称集合A是凸形的。如下图,红色的部分为手掌的凸包,双箭头部分表示凸缺陷(Convexity Defects),凸缺陷常用来进行手势识别等:opencv中凸包函数# cnt:轮廓;hull:返回的凸包的角点坐标;reuturnPoints=True:代表返回角点的x/y坐标hull...

2020-04-01 10:25:02 1924

原创 opencv 多边形近似物体形状

前面我们学习过最小外接矩和最小外接圆,那么可以用一个最小的多边形包围物体吗?当然可以:其中 cv.approxPolyDP() 的参数1是源图像的某个轮廓;参数2(epsilon)是一个距离值,表示多边形的轮廓接近实际轮廓的程度,值越小,越精确;参数3表示是否闭合。import cv2 as cvimport numpy as np# 多边形逼近# 1.先找到轮廓img = cv.i...

2020-04-01 09:49:27 1538

原创 opencv 利用轮廓检索函数实现字母匹配(图像匹配)

在待识别图像上找到模板图像待识别图像:模板图像:识别原理1. 将待识别图像 -> 灰度图像 -> 二值图像2. 通过轮廓检索函数 cv.findContours 找到待识别图像所有轮廓3. 模板图像 -> 灰度图像 -> 二值图像4. 通过轮廓检索函数 cv.findContours 找到模板图像中字母 A 的外轮廓5. 将第2步得到的轮廓逐一和第4步得...

2020-03-31 20:10:05 3117 1

原创 opencv 物体形状匹配

**opencv中 cv.matchShapes() 可以检测两个形状之间的相似度,返回值越小,越相似。**先读入下面这张图片:进行实验:import numpy as np import cv2 as cvimg = cv.imread('shapes.jpg', 0)_, thresh = cv.threshold(img, 0, 255, cv.THRESH_BINARY + c...

2020-03-31 15:26:50 3231

原创 opencv 图像轮廓特征 图像面积,轮廓周长,外接矩形、最小外接矩形、最小外接圆、拟合椭圆

找出图像轮廓contours, hierarchy = cv.findContours(thresh, 3, 2)画出图像轮廓cnt = contours[1]cv.drawContours(img_color1, [cnt], 0, (0, 0, 255), 2)计算轮廓面积area = cv.contourArea(cnt) #cnt:轮廓print(area)...

2020-03-31 14:36:15 2922

原创 opencv 利用图像轮廓函数填充圆环内部 图像轮廓函数应用小例子

实验:import cv2 as cvimport numpy as np# 1.读入圆环img = cv.imread('circle_ring.jpg')img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)_, thresh = cv.threshold( img_gray, 0, 255, cv.THRESH_BINARY +...

2020-03-31 10:24:13 2332

原创 opencv cv.findContours 函数详解

函数 cv.findContourscontours, hierarchy = cv.findContours( image, mode, method[, contours[, hierarchy[, offset]]] )参数1:源图像参数2:轮廓的检索方式,这篇文章主要讲解这个参数参数3:一般用 cv.CHAIN_APPROX_SIMPLE,就表示用尽可能少的像素点表示轮廓co...

2020-03-30 22:31:48 14643 2

原创 opencv 绘制图像轮廓

图像轮廓概念轮廓是一系列相连的点组成的曲线,代表了物体的基本外形。谈起轮廓不免想到边缘,它们确实很像。简单的说,轮廓是连续的,边缘并不全都连续(下图)。其实边缘主要是作为图像的特征使用,比如可以用边缘特征可以区分脸和手;而轮廓主要用来分析物体的形态,比如物体的周长和面积等,可以说边缘包括轮廓。寻找轮廓的操作一般用于二值图像,所以通常会使用阈值分割或Canny边缘检测先得到二值图。注意:...

2020-03-30 20:30:54 1687 2

原创 opencv 实现图像形态学操作 膨胀和腐蚀 开闭运算 形态学梯度 顶帽和黑帽

图像膨胀和腐蚀图解原理及python实现更多内容:图像膨胀和腐蚀原理及python实现opencv中膨胀和腐蚀函数dilation = cv.dilate(img, kernel) # 膨胀erosion = cv.erode(img, kernel) # 腐蚀实验import cv2 as cvimport numpy as npimg = cv.imread...

2020-03-30 18:11:25 780

原创 opencv 图像边缘检测 Canny边缘检测算法使用

图解边缘检测opencv 应用Canny算法进行边缘检测import cv2 as cvimport numpy as npimg = cv.imread('baby_g.jpg', 0)# 二值化图像处理后,边缘检测效果更好_, thresh = cv.threshold(img, 0, 255, cv.THRESH_BINARY + cv.THRESH_OTSU)# cann...

2020-03-30 11:55:52 766

原创 opencv 对图像进行卷积

卷积什么是二维卷积呢?看下面一张图就一目了然:卷积就是循环对图像跟一个核逐个元素相乘再求和得到另外一副图像的操作,比如结果图中第一个元素5是怎么算的呢?原图中3×3的区域与3×3的核逐个元素相乘再相加:5=1×1+2×0+1×0+0×0+1×0+1×0+3×0+0×0+2×2算完之后,整个框再往右移一步继续计算,横向计算完后,再往下移一步继续计算。简而言之,卷积是一个对应位置像素值相乘...

2020-03-30 11:09:28 3754

JAVA实现俄罗斯方块超详细视频教程及其源代码 看不懂视频你打我

该视频教程从零到一详细地讲解了如何利用JAVA语言实现俄罗斯方块游戏,讲解通俗易懂,是您学习了JAVA语言后开始学习JAVA项目的不二之选!哪里不懂可以通过博客联系我!

2018-04-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除