如何计算图像属性,例如面积、周长、坚固度
How to calculate the image properties for example Area, perimeter, Solidity
我有如下图片
我想计算图像中栗色的属性,例如区域,mean_intensity','在 python.[=11= 中使用 Opencv() 的栗色的坚固性]
以下是 Python/OpenCV/Skimage 中的操作方法。阈值处理后,只有一个区域值为 1,背景为零。
输入:
import cv2
import numpy as np
from skimage import measure
# load image
img = cv2.imread("2blobs.jpg")
# threshold on color
binary = cv2.inRange(img, (0,0,50), (50,50,255))
# get region properties
region = measure.regionprops(binary)
# get number of regions
num = len(region)
print('number of regions:',num)
print('')
# print all properties
for prop in region[0]:
print(prop, region[0][prop])
# display threshold
cv2.imshow("thresh", binary)
cv2.waitKey(0)
文本输出:
number of regions: 1
area 5484
bbox (32, 47, 156, 250)
bbox_area 25172
centroid (95.14277899343544, 150.97264770240702)
convex_area 21020
convex_image [[False False False ... False False False]
[False False False ... False False False]
[False False False ... False False False]
...
[False False False ... False False False]
[False False False ... False False False]
[False False False ... False False False]]
coords [[ 32 81]
[ 32 82]
[ 32 83]
...
[154 205]
[154 207]
[155 191]]
eccentricity 0.9062580193617534
equivalent_diameter 83.56102957316665
euler_number -24
extent 0.21786111552518672
filled_area 5650
filled_image [[False False False ... False False False]
[False False False ... False False False]
[False False False ... False False False]
...
[False False False ... False False False]
[False False False ... False False False]
[False False False ... False False False]]
image [[False False False ... False False False]
[False False False ... False False False]
[False False False ... False False False]
...
[False False False ... False False False]
[False False False ... False False False]
[False False False ... False False False]]
inertia_tensor [[5257.30195061 -310.920572 ]
[-310.920572 965.87512838]]
inertia_tensor_eigvals [5279.711609050717, 943.4654699433576]
label 255
local_centroid (63.14277899343545, 103.972647702407)
major_axis_length 290.6464961853342
minor_axis_length 122.86353209595482
moments [[5.48400000e+03 5.70186000e+05 8.81147920e+07 1.50278944e+10]
[3.46275000e+05 3.77082170e+07 5.75855208e+09 9.65562546e+11]
[2.71616250e+07 3.03617436e+09 4.54017781e+11 7.43711931e+13]
[2.35839324e+09 2.68925634e+11 3.95385779e+13 6.34332897e+15]]
moments_central [[ 5.48400000e+03 -1.16529009e-11 2.88310439e+07 -1.28913740e+08]
[ 5.48254775e-11 1.70508842e+06 -1.59825871e+08 1.12144760e+10]
[ 5.29685920e+06 -3.21975429e+06 2.15192576e+10 -2.10407654e+11]
[-2.55840616e+07 3.93254074e+09 -3.11193913e+11 1.94422438e+13]]
moments_hu [ 1.13478794e+00 6.25220141e-01 4.44028567e-02 1.04506936e-02
6.70377030e-06 -1.54890578e-03 2.25024857e-04]
moments_normalized [[ nan nan 0.95866192 -0.05788361]
[ nan 0.05669595 -0.07176348 0.06799651]
[ 0.17612603 -0.0014457 0.1304773 -0.01722743]
[-0.01148751 0.0238441 -0.02547945 0.02149595]]
orientation 1.498845558177429
perimeter 2039.2926394116744
slice (slice(32, 156, None), slice(47, 250, None))
solidity 0.2608943862987631
我有如下图片
我想计算图像中栗色的属性,例如区域,mean_intensity','在 python.[=11= 中使用 Opencv() 的栗色的坚固性]
以下是 Python/OpenCV/Skimage 中的操作方法。阈值处理后,只有一个区域值为 1,背景为零。
输入:
import cv2
import numpy as np
from skimage import measure
# load image
img = cv2.imread("2blobs.jpg")
# threshold on color
binary = cv2.inRange(img, (0,0,50), (50,50,255))
# get region properties
region = measure.regionprops(binary)
# get number of regions
num = len(region)
print('number of regions:',num)
print('')
# print all properties
for prop in region[0]:
print(prop, region[0][prop])
# display threshold
cv2.imshow("thresh", binary)
cv2.waitKey(0)
文本输出:
number of regions: 1
area 5484
bbox (32, 47, 156, 250)
bbox_area 25172
centroid (95.14277899343544, 150.97264770240702)
convex_area 21020
convex_image [[False False False ... False False False]
[False False False ... False False False]
[False False False ... False False False]
...
[False False False ... False False False]
[False False False ... False False False]
[False False False ... False False False]]
coords [[ 32 81]
[ 32 82]
[ 32 83]
...
[154 205]
[154 207]
[155 191]]
eccentricity 0.9062580193617534
equivalent_diameter 83.56102957316665
euler_number -24
extent 0.21786111552518672
filled_area 5650
filled_image [[False False False ... False False False]
[False False False ... False False False]
[False False False ... False False False]
...
[False False False ... False False False]
[False False False ... False False False]
[False False False ... False False False]]
image [[False False False ... False False False]
[False False False ... False False False]
[False False False ... False False False]
...
[False False False ... False False False]
[False False False ... False False False]
[False False False ... False False False]]
inertia_tensor [[5257.30195061 -310.920572 ]
[-310.920572 965.87512838]]
inertia_tensor_eigvals [5279.711609050717, 943.4654699433576]
label 255
local_centroid (63.14277899343545, 103.972647702407)
major_axis_length 290.6464961853342
minor_axis_length 122.86353209595482
moments [[5.48400000e+03 5.70186000e+05 8.81147920e+07 1.50278944e+10]
[3.46275000e+05 3.77082170e+07 5.75855208e+09 9.65562546e+11]
[2.71616250e+07 3.03617436e+09 4.54017781e+11 7.43711931e+13]
[2.35839324e+09 2.68925634e+11 3.95385779e+13 6.34332897e+15]]
moments_central [[ 5.48400000e+03 -1.16529009e-11 2.88310439e+07 -1.28913740e+08]
[ 5.48254775e-11 1.70508842e+06 -1.59825871e+08 1.12144760e+10]
[ 5.29685920e+06 -3.21975429e+06 2.15192576e+10 -2.10407654e+11]
[-2.55840616e+07 3.93254074e+09 -3.11193913e+11 1.94422438e+13]]
moments_hu [ 1.13478794e+00 6.25220141e-01 4.44028567e-02 1.04506936e-02
6.70377030e-06 -1.54890578e-03 2.25024857e-04]
moments_normalized [[ nan nan 0.95866192 -0.05788361]
[ nan 0.05669595 -0.07176348 0.06799651]
[ 0.17612603 -0.0014457 0.1304773 -0.01722743]
[-0.01148751 0.0238441 -0.02547945 0.02149595]]
orientation 1.498845558177429
perimeter 2039.2926394116744
slice (slice(32, 156, None), slice(47, 250, None))
solidity 0.2608943862987631