我有这个图片:
我想找到像这样的等腰直角三角形:
我该怎么办?谢谢你的帮助。
答案 0 :(得分:1)
您可以尝试模糊图像,转换为灰度并对图像应用不同的阈值。下一步是查找和排列您的轮廓,并可能使用限制尺寸过滤它们。
import cv2
import numpy as np
img = cv2.imread('triangle.png')
blur = cv2.GaussianBlur(img,(5,5),0)
values = [30, 40, 50, 60, 70, 80, 90]
gray_image = cv2.cvtColor(blur, cv2.COLOR_BGR2GRAY)
for i in values:
ret, threshold = cv2.threshold(gray_image,i,255,cv2.THRESH_BINARY)
im, contours, hierarchy = cv2.findContours(threshold,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)
area = sorted(contours, key=cv2.contourArea, reverse=True)
for j in range(1, len(area)):
contour = area[j]
size = cv2.contourArea(contour)
if 10 < float(size) < 140000:
cv2.drawContours(img, [contour], -1, (0,255,0), 2)
cv2.imshow('img', img)
结果:
注意:
转换到不同的色彩空间并应用不同的阈值可以改善重新开始。
答案 1 :(得分:0)
(注意我在继续操作之前手动裁剪图像中的图形部分)
<强>步骤:强>
标记的轮廓与三角形的形状非常相似。
我能够获得以下内容: