热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python拉普拉斯算子滤波_用拉普拉斯算子检测图像中的圆

我试着检测眼睛后面(眼底)的圆盘和杯子,以便以后计算某些东西。下面是眼睛的图像:我只是尝试使用OpenCV和python来检测磁盘,或者图

我试着检测眼睛后面(眼底)的圆盘和杯子,以便以后计算某些东西。下面是眼睛的图像:

我只是尝试使用OpenCV和python来检测磁盘,或者图像右侧较大的黄色圆圈,以及杯子,或者第一个圆圈内较小的黄色圆圈,这样我就可以最终执行某些计算了。在

到目前为止,我已经尝试使用拉普拉斯滤波使圆圈更突出。在

这是我的代码:import cv2

import numpy as np

from matplotlib import pyplot as plt

from pylab import *

# loading image

img0 = cv2.imread('01_g.jpg',)

# converting to gray scale

gray = cv2.cvtColor(img0, cv2.COLOR_BGR2GRAY)

# remove noise

img = cv2.GaussianBlur(gray,(3,3),0)

# convolute with proper kernels

laplacian = cv2.Laplacian(img,cv2.CV_64F)

sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=5) # x

sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=5) # y

magnitude = sqrt(sobelx**2+sobely**2)

plt.subplot(2,2,1),plt.imshow(img,cmap = 'gray')

plt.title('Original'), plt.xticks([]), plt.yticks([])

plt.subplot(2,2,2),plt.imshow(laplacian,cmap = 'gray')

plt.title('Laplacian'), plt.xticks([]), plt.yticks([])

plt.subplot(2,2,3),plt.imshow(sobelx,cmap = 'gray')

plt.title('Sobel X'), plt.xticks([]), plt.yticks([])

plt.subplot(2,2,4),plt.imshow(sobely,cmap = 'gray')

plt.title('Sobel Y'), plt.xticks([]), plt.yticks([])

plt.show()

这是我得到的结果:

正如你所看到的,拉普拉斯滤波器一点帮助也没有——事实上,杯子和碟片甚至看不见。索贝尔克斯和索贝里至少勾勒出了外圈的轮廓(圆盘)

我也尝试过拉普拉斯绝对值:

^{pr2}$

我得到的结果是:

#difference of gaussians

blur1 = cv2.GaussianBlur(img,(3,3),1)

blur2 = cv2.GaussianBlur(img,(5,5),1.1)

difference = blur2 - blur1

plt.imshow(difference, cmap = 'gray')

plt.show()

但这也没给我任何帮助。我真的很感谢你的帮助,我可以如何去检测这张图片中的杯子和碟片。在



推荐阅读
author-avatar
用户tznpaynnl5
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有