灰度图像中的 MATLAB 像素值

标签 matlab image-processing

比如说,我有一个 RGB 图像 rgb 和一个空间坐标列表 coords。我想提取空间坐标上的像素值,例如 [x1 y1][x2 y2][x3 y3] .对于 RGB 图像,我可以使用:

rgb = imread('sample.jpg')
coords = [x1 y1; x2 y2; x3 y3];
pixelData = impixel(rgb, coords(:,1), coords(:,2));

返回指定图像像素的红色、绿色和蓝色颜色值。

impixel 仅适用于彩色 (RGB) 图像。但我想从灰度图像 I 中提取像素值。我可以使用 for 循环,如下所示

for i = 1:size(coords,1)
    pixelData(i,:) = I(coords(i,2), coords(i,1));
end

我想避免使用 for 循环。还有其他方法可以实现吗?

imstats = regionprops(mask, I,'PixelValues'); 也可以,但我首先需要一个图像 mask

最佳答案

使用sub2ind .

pixelData = I(sub2ind(size(I), coords(:,2), coords(:,1)));

关于灰度图像中的 MATLAB 像素值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10757802/

相关文章:

python - OpenCV,两条曲线之间的面积

python - 计算图像python中的角度

matlab - 没有框架的依赖注入(inject)

Matlab : Plot each line of a matrix as a function of its index

c - 我尝试打开 .dat 文件时出错

matlab - 如何最好地解决此 MATLAB 名称冲突?

javascript - 使用 Javascript 合并图像

python - 图像旋转后如何获得新的坐标?

matlab - 具有不同切片数量的两个体积的图像配准

arrays - 在 Matlab 元胞数组中查找不同值的出现次数