opencv-python:如何绘制图像轮廓

时间:2015-11-15 00:46:55

标签: python python-2.7 opencv

我想在我的图片中找到轮廓:

import cv2
import numpy as np
import matplotlib.pyplot as plt
import os, sys

OriginalImage = cv2.imread('test.png',0)   # get the a gray-scale image
plt.figure(1)
plt.subplot(221),plt.imshow(OriginalImage,'gray')

GaussianImage = cv2.GaussianBlur(OriginalImage,(3,3),0)
plt.subplot(222),plt.imshow(GaussianImage,'gray')

ret,thrsh_GaussianImage =       cv2.threshold(GaussianImage,50,255,cv2.THRESH_BINARY)
plt.subplot(223),plt.imshow(thrsh_GaussianImage,'gray')
plt.show()

im, contours, hierarchy =     cv2.findContours(thrsh_GaussianImage,cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(thrsh_GaussianImage,contours,-1,(0,255,0),3)
cv2.imshow("j", im)
cv2.waitKey()

但问题是没有显示我的轮廓的最后一张图像。 我也删除了plt。显示...仍然没有显示任何东西。 如何显示轮廓?

我检查过以前的帖子......他们建议添加最后两行,但它仍然不适合我。

还有一件事就是在我的pycharm页面中      导入numpy为np 没有颜色为蓝色和灰色......它全是灰色......但是它有效。但我不知道为什么会这样!!

1 个答案:

答案 0 :(得分:0)

这对我有用:

cv2.drawContours(thrsh_GaussianImage,contours,-1,(128,255,0),3)

如果你弄明白为什么,请发布它。我现在没时间玩它或研究它。