当前位置:   article > 正文

python 三维矩阵中唯一值和找到矩阵中所有的不同颜色_三维矩阵数值比较

三维矩阵数值比较
  1. # 二维, axis=0, 按行比较, [1, 0, 0]有两个,只返回一个
  2. >>> a = np.array([[1, 0, 0], [1, 0, 0], [2, 3, 4]])
  3. >>> np.unique(a, axis=0)
  4. array([[1, 0, 0], [2, 3, 4]])
  5. # 三维矩阵, 按通道比较,三个通道值算作一组,和其他组比较
  6. np.unique(mask_label.reshape(-1, 3), axis=0)
  7. # 按通道查询某个值,比如查询三维矩阵中某个颜色所在位置,并赋其他颜色
  8. equality = np.equal(multi_object_mask, mask_bgr_color)
  9. multi_object_mask[np.all(equality, axis=-1)] = [255, 0, 0] # 赋蓝色
  10. # np.unique(mask_label.reshape(-1, 3), axis=0) 图片大小(4096,1700), 需要3s
  11. # 下面的只需要0.003s
  12. def find_colors(mask_label):
  13. gray_mask_label = cv2.cvtColor(mask_label, cv2.COLOR_BGR2GRAY)
  14. gray_mask_label[gray_mask_label > 0] = 255
  15. cnts, _ = cv2.findContours(gray_mask_label, mode=cv2.RETR_EXTERNAL, method=cv2.CHAIN_APPROX_SIMPLE)
  16. mask_color_list = []
  17. for cnt in cnts:
  18. M = cv2.moments(cnt)
  19. center_x = int(M["m10"] / M["m00"])
  20. center_y = int(M["m01"] / M["m00"])
  21. mask_color = mask_label[center_y, center_x]
  22. mask_color_list.append(mask_color)
  23. return mask_color_list

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/104760
推荐阅读
相关标签
  

闽ICP备14008679号