0

我在图像上执行了 rgb2gray 并对图像进行了 sobel 边缘检测。然后做了

faceEdges = faceNoNoise(:,:) > 50;        %binary threshold

所以它将图像的轮廓(一张脸的图片)设置为黑白。值 1 是白色像素,0 是黑色像素。有人说我可以用这个

mouthsquare = rectangle('position',[recX-mouthBoxBuffer, recY-mouthBoxBuffer, recXDiff*2+mouthBoxBuffer/2, recYDiff*2+mouthBoxBuffer/2],...   % see the change in coordinates
      'edgecolor','r');
numWhite = sum(sum(mouthsquare));

他说使用两个 sum(),因为它获取矩形内包含的像素的列和行。numWhite 总是返回 178 和一些十进制数。

4

1 回答 1

0

如果您有一个 2D 矩阵M(这是 - 例如 - 一个图像),计算有多少元素具有值 1 的方法是:

count_1 = sum(M(:)==1)

或者

count_1 = sum(reshape(M,1,[])==1)

如果目标值不完全是1,但有一个 Δ 阈值,比如说 +/- 0.02,那么应该要求:

count_1_pm02 = sum((M(:)>=0.98) & (M(:)<=1.02))

或使用重塑的等效项。

于 2013-04-17T03:47:07.143 回答