zoukankan      html  css  js  c++  java
  • opencv-python 最小外接矩形_转载

    所用函数:
    cv2.threshold() ——  阈值处理
    cv2.findContours() ——  轮廓检测
    cv2.boundingRect() ——  最大外接矩阵
    cv2.rectangle()  —— 画出矩形
    cv2.minAreaRect  ——  找到最小外接矩形(矩形具有一定的角度)
    cv2.boxPoints  ——  外接矩形的坐标位置
    cv2.drawContours(image, [box], 0, (0, 0, 255), 3)  ——  根据点画出矩形

     1 import cv2
     2 import numpy as np
     3 
     4 image = cv2.imread('new.jpg')
     5 img = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
     6 ret, thresh = cv2.threshold(img, 230, 255, cv2.THRESH_BINARY_INV)
     7 contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
     8 
     9 for c in contours:
    10     # 找到边界坐标
    11     x, y, w, h = cv2.boundingRect(c)  # 计算点集最外面的矩形边界
    12     cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)
    13 
    14     # 找面积最小的矩形
    15     rect = cv2.minAreaRect(c)
    16     # 得到最小矩形的坐标
    17     box = cv2.boxPoints(rect)
    18     # 标准化坐标到整数
    19     box = np.int0(box)
    20     # 画出边界
    21     cv2.drawContours(image, [box], 0, (0, 0, 255), 3)
    22     # 计算最小封闭圆的中心和半径
    23     (x, y), radius = cv2.minEnclosingCircle(c)
    24     # 换成整数integer
    25     center = (int(x),int(y))
    26     radius = int(radius)
    27     # 画圆
    28     cv2.circle(image, center, radius, (0, 255, 0), 2)
    29 
    30 cv2.drawContours(image, contours, -1, (255, 0, 0), 1)
    31 cv2.imshow("img", image)
    32 cv2.imwrite("img_1.jpg", image)
    33 cv2.waitKey(0)

     c++(opencv)实现获取最小外接矩形

  • 相关阅读:
    Java tomcat max-http-header-size配置导致的oom
    Idea修改jvm参数
    Java List的SubList使用问题
    Java Arrays.asList的三个坑
    Java 重写equals的时候为什么一定要重写hashcode-一个例子
    远心镜头
    镜头常识总结
    halcon中保存图像jpeg的压缩比
    红外光 相机拍照
    电磁波的穿透能力总结
  • 原文地址:https://www.cnblogs.com/henuliulei/p/13258363.html
Copyright © 2011-2022 走看看