java opencv 清晰_OpenCV - 查找没有清晰边框的区域轮廓

以下是我通过简单的管道获得的一些粗略结果:

fb924697-6440-4cd4-9a71-894e6e17f064.jpg

代码也是相当不言自明的

import cv2

import numpy as np

def nothing(x):

pass

cv2.namedWindow('image')

cv2.createTrackbar('high','image',0,255,nothing)

cv2.createTrackbar('low','image',0,255,nothing)

cv2.namedWindow('Edges')

while(1):

image = cv2.imread("PATH TO IMAGE HERE")

imgray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

high = cv2.getTrackbarPos('high', 'image')

low = cv2.getTrackbarPos('low', 'image')

edges = cv2.Canny(imgray, low, high)

kernel = np.ones((8, 8), np.uint8)

closing = cv2.morphologyEx(edges, cv2.MORPH_CLOSE, kernel)

cv2.imshow('Edges', closing)

ret,thresh = cv2.threshold(closing,low,high,0)

im2, contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

largest_area = 0

largest_contour_index = 0

counter = 0

for i in contours:

area = cv2.contourArea(i)

if (area > largest_area):

largest_area = area

largest_contour_index = counter

counter = counter + 1

cv2.drawContours(image, contours, largest_contour_index, (0,255,0), 1)

cv2.imshow('image', image)

k = cv2.waitKey(1) & 0xFF

if k == 27:

break

管道如下:

阅读流畅的图像

转换为灰度

应用形态学操作closing(8x8蒙版)

查找轮廓

找到最大的轮廓(区域明智)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值