基于Python的OpenCV骨架化图像并显示(skeletonize)
1. 效果图
自己画一张图,原图 VS 骨架效果图如下:
opencv logo原图 VS 骨架化效果图如下:
2. 源码
# 图像骨架化~ import cv2 import imutils import numpy as np img = np.zeros((390, 390, 3), dtype="uint8") cv2.putText(img, "Beautiful Girl.....", (50, 190), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 3) cv2.imshow("img", img) cv2.waitKey(0) cv2.imwrite("j.jpg", img) # 骨架图依赖灰度图 # 灰度图转换法一 img = cv2.imread('opencv_logo.jpg') # 读取为BGR图 cv2.imshow("origin", img) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # BGR图转换灰度图 # 灰度图转换二 gray = cv2.imread('opencv_logo.jpg', 0) # 直接读取为灰度图 cv2.imshow("gray", gray) # 骨架化图像 skeleton = imutils.skeletonize(gray, size=(3, 3)) cv2.imshow("Skeleton", skeleton) cv2.waitKey(0)
参考:
以上就是基于Python的OpenCV骨架化图像并显示(skeletonize)的详细内容,更多关于Python的OpenCV骨架化图像的资料请关注我们其它相关文章!
相关推荐
-
python opencv捕获摄像头并显示内容的实现
1.捕获摄像头和实时显示 import cv2 import numpy as np import pickle import matplotlib.pyplot as plt cap = cv2.VideoCapture(0) while True: ret,frame = cap.read() # Our operations on the frame come here gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # Display the
-
opencv中图像叠加/图像融合/按位操作的实现
一.图像叠加:cv2.add res=cv2.add(img1, img2) 或者res=cv2.add(img1, 标量值) 参数说明: cv2.add将两个图片对应位置的像素的值相加,或者将每个像素的值加上一个标量值,大于255的像素值就设置成255. 有一点需要注意的是,如果是两张图片相加,那么一定要注意两者的尺寸和通道数必须是一样的:如果是标量值,这个值既可以是整数也可以是浮点数,加合适的标量值一般是为了提高亮度. import cv2 img1 = cv2.imread('1.jpg'
-
python opencv 实现读取、显示、写入图像的方法
opencv是一个强大的图像处理和计算机视觉库,实现了很多实用算法,值得学习和深究下. opencv包安装 · 这里直接安装opencv-python包(非官方): pip install opencv-python 官方文档:https://opencv-python-tutroals.readthedocs.io/en/latest/ 1.读取图像 import cv2 image=cv2.imread("dog2.jpg",1) 说明: 第二个参数是一个标志,它指定了读取图像的方
-
opencv实现图像几何变换
本文实例为大家分享了opencv实现图像几何变换的具体代码,供大家参考,具体内容如下 图像伸缩(cv2.resize) 图像的扩大与缩小有专门的一个函数,cv2.resize(),那么关于伸缩需要确定的就是缩放比例,可以是x与y方向相同倍数,也可以单独设置x与y的缩放比例.另外一个就是在缩放以后图像必然就会变化,这就又涉及到一个插值问题.那么这个函数中,缩放有几种不同的插值(interpolation)方法,在缩小时推荐cv2.INTER_ARER,扩大是推荐cv2.INTER_CUBIC和cv
-
opencv 图像轮廓的实现示例
图像轮廓 Contours:轮廓 轮廓是将没有连着一起的边缘连着一起. 边缘检测检测出边缘,边缘有些未连接在一起. 注意问题 1.对象为二值图像,首先进行阈值分割或者边缘检测. 2.查找轮廓需要更改原始图像,通常使用原始图像的一份进行拷贝. 3.在opencv里,是从黑色背景里找白色.因此对象必须是白色,背景为黑色. 方法 cv2.findContours() cv2.drawContours() 通过cv2.findContours() 查找轮廓在哪里,再通过 cv2.drawContours
-
基于Python的OpenCV骨架化图像并显示(skeletonize)
1. 效果图 自己画一张图,原图 VS 骨架效果图如下: opencv logo原图 VS 骨架化效果图如下: 2. 源码 # 图像骨架化~ import cv2 import imutils import numpy as np img = np.zeros((390, 390, 3), dtype="uint8") cv2.putText(img, "Beautiful Girl.....", (50, 190), cv2.FONT_HERSHEY_SIMPLE
-
基于Python和openCV实现图像的全景拼接详细步骤
基本介绍 图像的全景拼接,即"缝合"两张具有重叠区域的图来创建一张全景图.其中用到了计算机视觉和图像处理技术有:关键点检测.局部不变特征.关键点匹配.RANSAC(Random Sample Consensus,随机采样一致性)和透视变形. 具体步骤 (1)检测左右两张图像的SIFT关键特征点,并提取局部不变特征 : (2)使用knnMatch检测来自右图(左图)的SIFT特征,与左图(右图)进行匹配 : (3)计算视角变换矩阵H,用变换矩阵H对右图进行扭曲变换: (4)将左图(右图)
-
python 用opencv实现图像修复和图像金字塔
我们将学习如何通过一种称为修复的方法去除旧照片中的小噪音,笔画等.基本思路很简单:用相邻像素替换那些坏标记,使其看起来像邻域. cv2.inpaint() cv2.INPAINT_TELEA cv2.INPAINT_NS import numpy as np import cv2 as cv img = cv.imread('messi_2.jpg') mask = cv.imread('mask2.png',0) dst = cv.inpaint(img,mask,3,cv.INPAINT_T
-
基于python的opencv图像处理实现对斑马线的检测示例
基本思路 斑马线检测通过opencv图像处理来进行灰度值转换.高斯滤波去噪.阈值处理.腐蚀和膨胀后对图像进行轮廓检测,通过判断车辆和行人的位置,以及他们之间的距离信息,当车速到超过一定阈值时并且与行人距离较近时,则会被判定车辆为未礼让行人. 结果示例 实验流程 先通过视频截取一张图片来进行测试,如果结果满意之后再嵌套到视频中,从而达到想要的效果. 1.预处理(灰度值转换.高斯滤波去噪.阈值处理.腐蚀和膨胀)> 根据自己的需求来修改一些值 #灰度值转换 imgGray = cv2.cvtColor
-
基于python使用OpenCV进行物体轮廓排序
目录 1 引言 2 栗子 2.1 读取图像 2.2 获取轮廓 2.3 轮廓排序 2.4 其他结果 3 总结 1 引言 在进行图像处理过程中,我们经常会遇到一些和物体轮廓相关的操作,比如求目标轮廓的周长面积等,我们直接使用Opencv的findContours函数可以很容易的得到每个目标的轮廓,但是可视化后, 这个次序是无序的,如下图左侧所示: 本节打算实现对物体轮廓进行排序,可以实现从上到下排序或者从左倒右排序,达到上图右侧的可视化结果. 2 栗子 2.1 读取图像 首先,我们来读取图像,并得到
-
python使用opencv resize图像不进行插值的操作
如下所示: def resize(src, dsize, dst=None, fx=None, fy=None, interpolation=None): 如果使用vanilla resize,不改变默认参数,就会对原图像进行插值操作.不关你是扩大还是缩小图片,都会通过插值产生新的像素值. 对于语义分割,target的处理,如果是对他进行resize操作的话.就希望不产生新的像素值,因为他的颜色信息,代表了像素的类别信息. 但是我们有时候希望resize之后不产生新的像素值,而是产生利用最近邻点
-
python 利用opencv实现图像网络传输
本代码主要实现的是利用网络传输图片,用在我的树莓派项目之上.该项目在PC上运行服务端,树莓派上运行客户端,两者连接到同一局域网中,修改代码中的IP地址,就可以实现将树莓派采集到的图像数据实时传输到PC端.先运行服务端代码,然后运行客户端代码即可.树莓派摄像头使用的是普通的USB摄像头,并且在树莓派上安装了opencv,在树莓派上安装opencv的过程可以参考https://www.pyimagesearch.com/2017/09/04/raspbian-stretch-install-open
-
Python使用OpenCV对图像进行缩放功能
OpenCV:图片缩放和图像金字塔 对图像进行缩放的最简单方法当然是调用resize函数啦! resize函数可以将源图像精确地转化为指定尺寸的目标图像. 要缩小图像,一般推荐使用CV_INETR_AREA来插值:若要放大图像,推荐使用CV_INTER_LINEAR. 现在说说调用方式 第一种,规定好你要图片的尺寸,就是你填入你要的图片的长和高. #include<opencv2\opencv.hpp> #include<opencv2\highgui\highgui.hpp> u
-
python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)
目录 1.高斯噪声 2.椒盐噪声 3.泊松噪声 4.speckle噪声 导读: 这篇文章主要介绍如何利用opencv来对图像添加各类噪声,原图: 1.高斯噪声 高斯噪声就是给图片添加一个服从高斯分布的噪声,可以通过调节高斯分布标准差(sigma)的大小来控制添加噪声程度,sigma越大添加的噪声越多图片损坏的越厉害 #读取图片 img = cv2.imread("demo.png") #设置高斯分布的均值和方差 mean = 0 #设置高斯分布的标准差 sigma = 25 #根据均值
随机推荐
- Jquery在IE7下无法使用 $.ajax解决方法
- JS 表单验证大全
- java获取文件扩展名的方法小结【正则与字符串截取】
- js实现淡入淡出轮播切换功能
- PHP中的MYSQL常用函数(php下操作数据库必备)
- PHP实现的sqlite数据库连接类
- c#实现metro文件压缩解压示例
- 基于iframe实现ajax跨域请求 获取网页中ajax数据
- 网站被等恶意镜像的解决、反制措施详细教程
- jQuery select自动选中功能实现方法分析
- c语言中字符串分割函数及实现方法
- Kotlin 基础语法详细介绍
- jquery parent和parents的区别分析
- JS设置下拉列表框当前所选值的方法
- RealPlay11 安装过程遭遇CNNIC附清除办法
- Android编程实现改变控件背景及形态的方法
- Spring+MongoDB实现登录注册功能
- python编程实现希尔排序
- C#在Unity游戏开发中进行多线程编程的方法
- Android TextView预渲染研究