python求封闭图形的面积_使用生成的多边形的正确闭合skimage.measure.find_轮廓()

我目前正在使用skimage.measure.find_contours()来查找曲面上的轮廓。现在我已经找到了轮廓线,我需要能够找到包围它们的区域。在

当所有顶点都在数据集中时,这就像一个完全封闭的多边形一样。

但是,如果等高线在边或角点突破了曲面的边,如何确保多边形是完全封闭的?当发生这种情况时,我希望使用曲面的边作为附加顶点来封闭多边形。例如,在下面的图像中,随着轮廓的显示,您可以看到轮廓结束于图像的边缘,如何关闭它们?同样在棕色轮廓的例子中,它只是一条直线,我认为我不想返回一个区域,我该如何挑选这个例子?在

我知道我可以通过检查多边形的最后一个顶点是否与第一个顶点相同来检查封闭的轮廓/多边形。在

我有计算多边形内面积的代码,取自heredef find_area(array):

a = 0

ox,oy = array[0]

for x,y in array[1:]:

a += (x*oy-y*ox)

ox,oy = x,y

return -a/2

我只需要帮助关闭多边形。检查可能发生的不同情况。在

谢谢

更新:

应用@soupault建议的解决方案后,我得到了以下代码:

^{pr2}$

此解决方案假设每个像素的大小为1x1。在我的实际数据解决方案中,情况并非如此,因此我还应用了以下函数来对数据应用线性插值。我相信你也可以应用一个类似的函数来缩小每个像素的面积,提高数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]和\[2\]中提到的错误信息"ImportError: cannot import name 'compare_psnr' from 'skimage.measure'"表示在代码中导入skimage.measure模块的compare_psnr函数时出现了错误。这个错误可能是因为skimage库的版本问题导致的。在较新的版本中,compare_psnr函数可能已经被移除或更改了名称。 解决这个问题的方法是检查你所使用skimage库的版本,并查看官方文档或者其他资源,确认是否有关于compare_psnr函数的更改或替代函数的信息。如果有,你可以根据文档中的指导进行相应的修改。 另外,引用\[3\]中提到的博客文章也提到了相同的错误信息。你可以参考该博客中的解决方案,看看是否适用于你的情况。 总结来说,这个错误是由于导入skimage.measure模块的compare_psnr函数时出现了问题,可能是因为库的版本不兼容或函数名称更改导致的。你可以通过查看官方文档或其他资源来解决这个问题。 #### 引用[.reference_title] - *1* *3* [Skimage包的安装及使用时报错ImportError: cannot import name ‘compare_psnr’ from ‘skimage.measure’](https://blog.csdn.net/m0_47516549/article/details/126199563)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [python debug:cannot import name ‘compare_psnr‘& cannot import name ‘compare_ssim](https://blog.csdn.net/qq_41554005/article/details/114379788)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值