首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算叶片受侵染面积的百分比?

如何计算叶片受侵染面积的百分比?
EN

Stack Overflow用户
提问于 2021-05-08 14:27:57
回答 1查看 126关注 0票数 1

我已经掩盖了疫区。我想计算出叶上受感染面积的百分比。这是我的密码。如何计算感染面积的百分比?

代码语言:javascript
复制
import cv2
import numpy as np

img =  cv2.imread('AFTER_5736.png')
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# find the green color 
mask_green = cv2.inRange(hsv, (36, 0, 0), (86,255,255))
# find the brown color
mask_brown = cv2.inRange(hsv, (8, 60, 20), (30, 255, 255))
# find the yellow color in the leaf
mask_yellow = cv2.inRange(hsv, (14, 39, 64), (40, 255, 255))

# find any of the three colors(green or brown or yellow) in the image
#mask = cv2.bitwise_or(mask_green, mask_brown)
#mask = cv2.bitwise_or(mask, mask_yellow)
mask = cv2.bitwise_not(mask_green)

# Bitwise-AND mask and original image
res = cv2.bitwise_not(img, img, mask= mask)

cv2.imshow("final image", res)
cv2.waitKey(0)
cv2.destroyAllWindows()
  1. 原始图像
  2. 掩模图像指示叶的受感染区域
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-08 14:40:31

试着取图像的和,看看有多少像素被遮住了该颜色。

代码语言:javascript
复制
>>> sum(sum(mask_brown))
16203
>>> sum(sum(mask_green))
22906
>>> sum(sum(mask_yellow))
9292
>>> brown = sum(sum(mask_brown))
>>> green = sum(sum(mask_green))
>>> yellow = sum(sum(mask_yellow))
>>> total = brown + green + yellow
>>> percentHealthy = green / total
>>> percentHealthy
0.47325468482056154
>>> percentDiseased = (brown + yellow) / total
>>> percentDiseased
0.5267453151794385
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67448621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档