如何检测图像中是否存在滤波器?

我正在跟随Andrew Ng的视频1视频2学习边缘检测,并且尝试检测图像中是否存在滤波器。
因此,如果我有两张图像和两个滤波器(一个检测水平线,另一个检测垂直线):

我尝试使用以下方法在每张图像上应用卷积滤波器:

print(convolve2d(img, vertical, 'valid'))[[  0 -30 -30   0] [  0 -30 -30   0] [  0 -30 -30   0] [  0 -30 -30   0]]print(convolve2d(img, horizontal, 'valid'))[[0 0 0 0] [0 0 0 0] [0 0 0 0] [0 0 0 0]]

是否有办法创建一个函数,返回1 / 0来表示滤波器是否存在?
对于更复杂的图像如img2,情况会更加复杂:

print(convolve2d(img2, vertical, 'valid'))[[  0 -30 -30   0] [  0 -10 -10   0] [  0  10  10   0] [  0  30  30   0]]print(convolve2d(img2, horizontal, 'valid'))[[  0   0   0   0] [-30 -10  10  30] [-30 -10  10  30] [  0   0   0   0]]

所以我试图创建一个函数来返回滤波器存在的百分比,但遇到了困难。


回答:

根据评论中的讨论,我们决定计算矩阵中零(或非常小的值)的百分比。假设矩阵是arr。那么,

mask = np.where(abs(arr) < 0.00001, 0, 1)percent_zeros = np.mean(mask)

其中0.00001是阈值(低于这个值,我们认为所有条目都是零),percent_zeros输出数组中非零的比例(值在0到1之间),其中1表示矩阵中没有零。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注