- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我这里有这张图片,上面有很多青色、洋红色和黄色的小打印机点。
分离颜色 channel (CMYK) 后,我在图像上应用了一个阈值。
此处用于颜色 channel 青色。
现在我想找到一种方法来计算每个点的周长。所以最后我想得到周长的均值和标准差。
我已经找到了一种方法(在 stackoverflow 上某人的帮助下)计算点大小的均值和标准偏差:
def compute_mean_stddev(contours_of_images):
for contours_of_image in contours_of_images:
count = len(contours_of_image)
sum_list = []
for cntr in contours_of_image:
area = cv2.contourArea(cntr)
sum_list.append(area)
average = np.mean(sum_list)
standard_deviation = np.std(sum_list)
现在对于面积,有没有办法得到周长?
最佳答案
根据OpenCV documentation,情况不错一旦你有了轮廓,你应该能够使用 cv.arcLength()
方法计算出你想要的内容。
It is also called arc length. It can be found out using cv.arcLength() function. Second argument specify whether shape is a closed contour (if passed True), or just a curve.
官方文档示例:
import numpy as np
import cv2 as cv
img = cv.imread('star.jpg',0)
ret, thresh = cv.threshold(img,127,255,0)
contours, hierarchy = cv.findContours(thresh, 1, 2)
cnt = contours[0]
area = cv.contourArea() # Area of first contour
perimeter = cv.arcLength(cnt, True) # Perimeter of first contour
因此,在您的情况下,您应该按如下方式更新代码:
def compute_mean_stddev(contours_of_images):
for contours_of_image in contours_of_images:
count = len(contours_of_image)
sum_list = []
for cntr in contours_of_image:
area = cv2.contourArea(cntr)
perimeter = cv.arcLength(cntr, True)
average = np.mean(sum_list)
standard_deviation = np.std(sum_list)
希望这能奏效!
关于python - 计算等高线的周长(OpenCV、Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70304679/
好吧,这不起作用!有什么问题呢。有人可以向我指出吗?我已经盯着它看了好几个小时了。我之前寻求过帮助,他提出了结构,但我并没有真正理解它,所以它不起作用。 没有得到正确的计算。我认为读取文件时可能出现问
我需要显示一个圆周。为了做到这一点,我认为我可以为很多 x 计算 y 的两个值,所以我做了: import sympy as sy from sympy.abc import x,y f = x**2
3个不同的类 1个用于处理Circle实例,1个用于Square实例,第3个用于比较之间他们(main) 。在 main 函数中,我找到了 circle (在 c1..c4 之间)和 square (
我是一名优秀的程序员,十分优秀!