首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >3d sobel算法在python中的实现

3d sobel算法在python中的实现
EN

Stack Overflow用户
提问于 2012-06-29 19:41:39
回答 1查看 5.1K关注 0票数 4

我正在尝试用python计算一个3d sobel滤波器。我有一个非常好的二维图像代码,如下所示。

顺便说一句。我的原始图像是uint8类型的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    preSobel = preSobel.astype('int32')
    dx = ndimage.sobel(preSobel, 0)  # horizontal derivative
    dy = ndimage.sobel(preSobel, 1)  # vertical derivative
    mag = numpy.hypot(dx, dy)  # magnitude
    mag *= 255.0 / numpy.max(mag)  # normalize (Q&D)
    img[i,:,:]=mag

但根据我对计算2d的wiki page的理解,我应该将1dsobel的结果相乘,而不是假设:

无论如何,为了转到3d,我想我需要在每个轴上计算1d sobel,然后乘以所有,但我不确定…有没有更快计算3d sobel的库?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-29 20:11:47

首先,关于你的wikipedia link:这里的乘法是指构建sobel卷积内核的方法,而不是最终结果。

对于2D sobel滤波器,您需要一个核来获得x方向的导数,另一个核来获得Y方向的导数,例如

这实际上就是您的两个命令所做的事情,所以如果您使用numpy,则不需要自己构造这些内核。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dx = ndimage.sobel(preSobel, 0)  # horizontal derivative
dy = ndimage.sobel(preSobel, 1)  # vertical derivative

现在对于3D情况,你需要3个操作,3个内核,一个是dx,dy,dz。链接的wiki部分将告诉您如何通过乘以组件来构建内核。例如,为dZ完成的sobel内核是一个3x3x3矩阵,如下所示:

为了得到大小,你仍然需要取平方导数(斜边)的平方根。

我没有numpy,但据我从the documentation可以看出,ndimage sobel命令可以处理任意数量的维度,因此,内核已经提供:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dx = ndimage.sobel(your3Dmatrix, 0)  # x derivative
dy = ndimage.sobel(your3Dmatrix, 1)  # y derivative
dz = ndimage.sobel(your3Dmatrix, 2)  # z derivative

现在the命令可能只有2个参数,所以您必须找到另一种有效地计算dx_dx= dy_dy ( mag +sqrt+ dz*dz)的方法。但是NumPy应该有你需要的所有东西。

更新

实际上,如果你只对大小感兴趣,there is a complete function in numpy for this

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 mag = generic_gradient_magnitude(your3Dmatrix, sobel)
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11267994

复制
相关文章
开普勒云平台:如何配置gitlab与Jenkins
kplcloud是一个基于Kubernetes的轻量级PaaS平台,通过可视化的界面对应用进行管理,降低应用容器化的对度,从而减少应用容器化的时间成本。
宜信技术学院
2019/10/28
1.3K0
Eclipse、NetBeans、IntelliJ
Eclipse作为开发Java的IDE,从出现到现在已经有几年的时间了,其丰富的特性,操作容易和在提高生产力方面收到了广大开发者的青睐。当然一提到Java IDE,人们不禁会提到其他Java IDE像NetBeans、IntelliJ等,那么这些Java IDE之间到底存在着哪些异同呢?
阳光岛主
2019/02/19
2.1K0
开普勒云平台:9个示例解析如何安装依赖
kplcloud是一个基于Kubernetes的轻量级PaaS平台,通过可视化的界面对应用进行管理,降低应用容器化的对度,从而减少应用容器化的时间成本。
宜信技术学院
2019/10/31
2K0
启动、配置、扩容、伸缩、存储,开普勒云平台之使用指南
kplcloud是一个基于Kubernetes的轻量级PaaS平台,通过可视化的界面对应用进行管理,降低应用容器化的对度,从而减少应用容器化的时间成本。
宜信技术学院
2019/11/01
2.4K0
从开普勒三大定律到大数据分析
开普勒定律是德国天文学家开普勒提出的关于行星运动的三大定律。这三大定律又分别称为椭圆定律、面积定律和调和定律,内容如下:
数据科学人工智能
2022/03/31
1.8K0
从开普勒三大定律到大数据分析
NetBeans IDE 开发设置
安裝 官方下載點 擴充功能 安裝擴充功能 下載擴充套件包 官方套件庫 或者在 NetBeans IDE 裏面下載插件(方便) 開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins 選擇要安裝的擴充套件包 啟用已安裝的擴充功能 開啟 NetBeans→Tools→Plugins→Installed 選擇要啟用的套件 (*.npm) 點擊 Activate 匯入設定 開啟 NetBeans→Tools→Options 點擊 Import 匯入設定 選擇要匯入的套件包
Cell
2022/02/25
1.3K0
NetBeans IDE 开发设置
MAC Netbeans 8.2 设置author
1、工具(T) ---> 模板 (T) image.png 2、点击设置 编辑user properties author=jiangxingqi email=xxxxx@126.com 3、选择文件类型,点击在编辑器中打开 ${doctype} <!-- @author ${author} --> <html> <head> <meta charset="${project.encoding}"> <title></title> </head>
week
2018/08/24
1.2K0
MAC Netbeans 8.2 设置author
如何将Eclipse设置为中文版[通俗易懂]
我们知道Eclipse一个开放源代码的、基于Java的可扩展开发平台,不管学习还是工作都是一款不错的集成开发环境(IDE),但是对于一些初学者看到Eclipse上满满的英文字母可能会感到无从下手,汉化后可能还好点。
全栈程序员站长
2022/08/20
4.1K0
如何将Eclipse设置为中文版[通俗易懂]
开普勒望远镜正式退役,其庞大数据库仍将推动地球上的发现
据外媒报道,日前,美国NASA的开普勒太空望远镜将正式“退役”,未来在燃料耗尽之后,它将会在安全轨道上漂移。而它的庞大数据库将继续帮助地球上的科学家探索可发现太空更多未知的秘密。
镁客网
2018/12/05
5630
【硬蛋+微软=K系统】中小企业 AI +软硬兼施,开普勒系统开放使能平台发布
【新智元导读】和当年阿里巴巴用平台的力量“赋能”中小型商户,帮助他们进入到 “互联网+” 的世界相似,硬蛋最新发布了“K 系统”这一开放式 AI 使能平台,将大大降低中小企业进入 AI 世界的门槛。该平台将提供完整的解决方案帮助缺少人工智能人才的传统企业快速转型;提供快捷完整的开发平台缩短人工智能初创业公司进入市场时间;提供硬件模组、中间件及云服务交换机填补人工智能服务和技术落地垂直应用的间隙;提出数据安全、隐私保护及数据交换、使用、授权模型的规范和标准,保证用户交互、数据、知识及服务的互通互联。 2003
新智元
2018/03/28
8530
【硬蛋+微软=K系统】中小企业 AI +软硬兼施,开普勒系统开放使能平台发布
物理学,心理学,神经科学教授跨界对话:脑科学仍处于“前开普勒时代”
大数据文摘作品,未经授权禁止转载,转载具体要求见文末。 导读:人工智能正给经济社会带来巨大变化,而它本身尽管风头正盛,依然存在自身发展的瓶颈:机器学习不灵活,需要较多人工干预或大量标记样本;人工智能的不同模态和认知功能之间交互与协同较少;机器的综合智能水平与人脑相差较大…… 要突破这些瓶颈,不少科学家们把期待投在脑科学研究上,认定智能技术可以从脑科学和神经科学获得启发。那么脑科学到底有多重要?它处在一个什么样的发展阶段?人工智能和脑科学之间又到底有多大的关系? 6月26日,伦敦大学学院计算机神经科学教授、北
大数据文摘
2018/05/22
8350
厉害了!谷歌AI帮NASA发现第二个太阳系:也有八颗行星
太阳系不再是唯一的八行星星系了!美国航天局14日宣布,谷歌和NASA宣布,通过机器学习技术在开普勒-90系统中发现了一颗新行星。通过分析开普勒太空望远镜的观测数据,在距离地球2545光年的开普勒-90星系中,又发现了第八颗行星,这使得开普勒-90与太阳系并列成为行星数量最多的星系。 美国航天局天体物理学部门主任保罗·赫兹在电话记者会上说:“今天,开普勒证实恒星可以拥有大量行星,就像我们的太阳系一样。” 这个发现的重要性还在于它第一次使用了神经网络人工智能技术。研究人员介绍说,他们首先利用1.5万个开普勒
WZEARW
2018/04/11
5990
厉害了!谷歌AI帮NASA发现第二个太阳系:也有八颗行星
人类借助AI技术发现了“迷你太阳系”
科普时间: NASA是美国联邦政府的一个政府机构,负责美国的太空计划。1958年7月29日,艾森豪威尔总统签署了《美国公共法案85-568》(United States Public Law 85-568,即《美国国家航空暨太空法案》),创立了NASA。 1958年10月1日,NASA正式成立,取代其前身美国国家航空咨询委员会(NACA)。NASA的领导项目包括阿波罗登月计划、“天空实验室(Skylab)空间站,以及后来的航天飞机。 数据传输中... 美国东部时间12月15日凌晨,NASA(美国国家航空航天
企鹅号小编
2018/01/29
7260
人类借助AI技术发现了“迷你太阳系”
人工智能帮助NASA发现新行星
最近,科学家借助人工智能技术发现了环绕开普勒-90星系(一个类太阳系,距离地球2545光年)的第八颗行星,至此,我们的太阳系与围绕单个恒星周围的大多数行星都有联系。这颗行星是在美国国家航空航天局(NASA)开普勒太空望远镜(Kepler Space Telescope)的数据中发现的。 新发现的开普勒-90i是一颗炽热的岩石行星,每14.4天围绕它的恒星公转一次。该发现借助了谷歌(Google)研发的机器学习系统。机器学习的本质在于计算机通过人工智能实现“自我学习”。在这次发现中,计算机通过在开普勒数据实例
人工智能快报
2018/03/07
7840
普元高低开融合平台建设之路
2022年我们公司在应用域这条线,主要聚焦在专业微服务开发和低代码开发的融合,在这里跟大家分享我们的平台定位、重点聚焦以及后续发展的思路。
yuanyi928
2023/01/11
5870
天文学家在AI帮助下发现“第二个太阳系”
数年前,开普勒天文望远镜在2545光年外发现了一颗大小与太阳相近的恒星:开普勒90。在随后的观测中,科学家发现了更多与太阳系相似的特征:开普勒90拥有7颗行星,且较小的行星距恒星更近,而更大的行星占据外侧轨道。 在刚刚公布的这项新发现中,NASA与谷歌联合找出了该行星系统的第8颗行星:开普勒90i,这使得人类首次在太阳系外,找到由8颗行星组成的行星系统。 艺术家笔下,开普勒90行星系统中的8颗行星(行星大小按比例描绘;距离不按照比例) 新发现的开普勒90i同样是一颗类地行星,它比地球大了约30%,是
企鹅号小编
2018/01/31
4940
天文学家在AI帮助下发现“第二个太阳系”
谷歌和大学研究人员利用深度学习发现系外行星
谷歌和多所大学的研究人员使用一个名为AstroNet K2的卷积神经网络发现了两颗新的系外行星。通过进一步的研究,另外14个天体也可以被确定为系外行星。
AiTechYun
2019/05/13
4610
谷歌和大学研究人员利用深度学习发现系外行星
Eclipse基础设置
• 设置自动联想提示 Window -> Preferences -> Java -> Editor -> Content Assist -> Auto Activation • 设置格式化模板 window->preferences->Java->Code Style->Formatter
Kevin_Zhang
2021/06/10
7740
【独家】京东商城系统资深架构师刘佳:京东开普勒平台对多渠道个性化需求的解决方案
刘佳 京东商城系统资深架构师 京东技术平台架构峰会讲师 京东开普勒平台致力于通过入驻、导购、买断、京商城、轻商城五大解决方案,以多元化、差异化方式开创流量变现和内容营销的新时代,实现无界零售。 今天
京东技术
2018/04/10
3.1K0
【独家】京东商城系统资深架构师刘佳:京东开普勒平台对多渠道个性化需求的解决方案
还记得谷歌之前发现的两颗行星吗?今天谷歌对此披露了重要技术细节
AiTechYun 编辑:Yining 前一阵,谷歌通过训练一个神经网络来分析来自NASA的开普勒太空望远镜的数据,并准确地识别出最有希望的行星信号,从而发现了两颗新行星。虽然这只是对700颗恒星的初
AiTechYun
2018/03/27
6270
还记得谷歌之前发现的两颗行星吗?今天谷歌对此披露了重要技术细节

相似问题

在Swift中,如何显式地为带有匿名闭包参数的map指定返回值?

23

Swift @auto闭包参数包装提供了显式闭包

11

为什么这个闭包参数需要显式类型?

10

带有多个参数的Swift闭包

20

将显式生存期的闭包作为Rust中的参数

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文