2024-04-26 22:49:04 发布
网友
因此,我目前正在进行一个项目,我需要找到一个特定的厘米方面的面积曲线。曲线问题是曲线有多个颜色,每个颜色代表不同的值 Something Like This
有人能帮我吗?图像中有多条这样的曲线。如何在Python中同时计算它们。你知道吗
您可以使用以下代码以像素为单位打印区域。要获得以cm^2为单位的面积,您需要知道像素和实际长度之间的关系。你知道吗
下面的代码打印图像中最大斑点的区域。 要获得图像中所有斑点的面积,只需将[c]替换为contours
[c]
contours
import cv2 import numpy as np img = cv2.imread("image.png", 0) blank = np.zeros_like(img) ret, thresh = cv2.threshold(img, 0 ,255, cv2.THRESH_BINARY) im2, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) if( len(contours) != 0 ): c = max(contours, key = cv2.contourArea) cv2.drawContours(blank, [c], -1, 255, -1) print cv2.countNonZero(blank) cv2.imshow("img", blank) cv2.waitKey(0) cv2.destroyAllWindows()
编辑:
import cv2 import numpy as np img = cv2.imread("images.png", 0) blank = np.zeros_like(img) ret, thresh = cv2.threshold(img, 0 ,255, cv2.THRESH_BINARY) im2, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) for i in range(len(contours)): cv2.drawContours(blank, contours[i], -1, 255, -1) print "area of contour " + str(i)+" = " + str(cv2.contourArea(contours[i])) cv2.imshow("img", blank) cv2.waitKey(0) cv2.destroyAllWindows()
1、把不同颜色的斑点分开。它们看起来像是由其他一些绘图软件生成的,所以大概颜色是固定的和已知的。为每种颜色创建一个新图像
2.对于只包含固定颜色和黑色背景的斑点的图像,可以绘制轮廓的轮廓(请参见findContours)。Opencv将为每个blob提供一个单独的轮廓。你知道吗
3,计算每个轮廓的面积-有一个opencv函数可以做到这一点。你知道吗
您可以使用以下代码以像素为单位打印区域。要获得以cm^2为单位的面积,您需要知道像素和实际长度之间的关系。你知道吗
下面的代码打印图像中最大斑点的区域。 要获得图像中所有斑点的面积,只需将
[c]
替换为contours
编辑:
1、把不同颜色的斑点分开。它们看起来像是由其他一些绘图软件生成的,所以大概颜色是固定的和已知的。为每种颜色创建一个新图像
2.对于只包含固定颜色和黑色背景的斑点的图像,可以绘制轮廓的轮廓(请参见findContours)。Opencv将为每个blob提供一个单独的轮廓。你知道吗
3,计算每个轮廓的面积-有一个opencv函数可以做到这一点。你知道吗
相关问题 更多 >
编程相关推荐