博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cv2 边缘识别、膨胀腐蚀、求最小包围矩阵
阅读量:2089 次
发布时间:2019-04-29

本文共 1157 字,大约阅读时间需要 3 分钟。

img_src = cv2.imread("cs1.jpg")# erodekernel = np.ones((3, 3),np.uint8)img_src = cv2.dilate(img_src ,kernel)img_src = cv2.erode(img_src, kernel)# find contourimg_contour, contours, hierarchy = cv2.findContours(img_bin, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)mask = img_src.copy()# contours is a contour listmask = cv2.drawContours(mask, contours[0], 0, (255, 255, 255), -1)  # draw one contour# find max contour areaarea = []new_mask = np.zeros(mask.shape, dtype=np.uint8)for i in range(len(contours)):     area.append(cv2.contourArea(contours[i]))max_idx = np.argmax(area)cv2.fillConvexPoly(new_mask, contours[max_idx], (255,255,255))# 计算极值点left_most = tuple(contour[contour[:, :, 0].argmin()][0])right_most = tuple(contour[contour[:, :, 0].argmax()][0])top_most = tuple(contour[contour[:, :, 1].argmin()][0])bottom_most = tuple(contour[contour[:, :, 1].argmax()][0])# plot pointcv2.circle(img, left_most, 2, (0, 255, 255), 2)# 找最小包围boximg = img_src.copy()rect = cv2.minAreaRect(contours[0]) center, (h, w), degree = rect  # (中心(x,y), (宽,高), 旋转角度)box = cv2.boxPoints(rect)  # 获取最小外接矩形的4个顶点坐标box = np.int0(box)cv2.drawContours(img, [box], 0, (0, 0, 255), 5)

 

转载地址:http://ffeqf.baihongyu.com/

你可能感兴趣的文章
手把手用 IntelliJ IDEA 和 SBT 创建 scala 项目
查看>>
GAN 的 keras 实现
查看>>
AI 在 marketing 上的应用
查看>>
Logistic regression 为什么用 sigmoid ?
查看>>
Logistic Regression 为什么用极大似然函数
查看>>
为什么在优化算法中使用指数加权平均
查看>>
Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理
查看>>
Java集合详解2:一文读懂Queue和LinkedList
查看>>
Java集合详解4:一文读懂HashMap和HashTable的区别以及常见面试题
查看>>
Java集合详解5:深入理解LinkedHashMap和LRU缓存
查看>>
Java集合详解6:这次,从头到尾带你解读Java中的红黑树
查看>>
Java并发指南2:深入理解Java内存模型JMM
查看>>
Java并发指南6:Java内存模型JMM总结
查看>>
Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理
查看>>
Java网络编程与NIO详解10:深度解读Tomcat中的NIO模型
查看>>
Java网络编程与NIO详解11:Tomcat中的Connector源码分析(NIO)
查看>>
深入理解JVM虚拟机1:JVM内存的结构与消失的永久代
查看>>
深入理解JVM虚拟机3:垃圾回收器详解
查看>>
深入理解JVM虚拟机4:Java class介绍与解析实践
查看>>
深入理解JVM虚拟机5:虚拟机字节码执行引擎
查看>>