使用过滤器识别虹膜?

信息处理 图像处理 过滤器 算法 matlab
2022-01-24 07:37:52

我正在matlab中实现一个虹膜识别系统,并根据论文中提出的算法执行了以下步骤

  1. 初始图像

    在此处输入图像描述

  2. 中值滤波

  3. 对于过滤图像中的每一行,将值 1 分配给该行中具有最小值的像素,将其他像素分配为零

  4. 再次进行中值滤波以去除各处的白点。

  5. 声明:获取具有最大数量的行和列。然后求中心(xo, yo)和半径(rx, ry)如下:xo=本列索引,yo=本行索引,rx=本行个数/2,ry=本列个数/2

我的问题是如何在 MATLAB 中执行第 5 步?

1个回答

给定一个仅由 0 和 1 组成的矩阵A(在算法的第 4 步之后应该拥有该矩阵,您可以通过以下方式实现第 5 步:

% find column with the maximum number of ones. sum down the rows of the
% matrix and find the column with the largest sum
[ry,xo] = max(sum(A));
% find the corresponding row; do the same thing except sum across the
% matrix's columns
[rx,yo] = max(sum(A,2));
% the values "rx" and "ry" above contain the sums of the row and column
% (respectively) that have the maximum number of ones. divide them by
% 2 according to your algorithm in step 5
rx = rx / 2;
ry = ry / 2;

在上述(未经测试)之后,然后xo, yo, rx, 和ry应填充您的算法指示的值。