matlab - Matlab:提取存储在单元格数组中的所有图像的第 i_th 像素
问题描述
我有一个image_data
包含 400 个图像的单元格数组:
image_data = {img1, img2, ... img400}
每个图像,例如img1
,都是一个128 x 128
像素值数组:
img1 = [0.2, 0.5, .....]
我想获取存储在中的所有图像的所有第 i_th 像素image_data
,但不使用 for-loop。
例如:
image_data = {img1, img2, img3}
img1 = [0.1, 0.2, 0.3]
img2 = [0.4, 0.5, 0.6]
img3 = [0.7, 0.8, 0.9]
我想快速计算以下方差:
var([img1(1),img2(1),img3(1)]) = var([0.1,0.4,0.7])
var([img1(2),img2(2),img3(2)]) = var([0.2,0.5,0.8])
var([img1(3),img2(3),img3(3)]) = var([0.3,0.6,0.9])
尽量避免使用循环,因为它很慢。
解决方案
第一步是通过沿第 3 维连接图像,将笨重的元胞数组转换为 3 维数组:
image_array = cat(3, image_data{:});
现在,我们所要做的就是使用下标将每个图像中第 i 个像素的向量转换为向量并将其传递给var
:
pixel_var = var(image_array(1,1,:)); % var for pixel 1
或者一次完成整个图像并索引到结果中:
image_var = var(image_array, 0, 3); % take var along 3rd dimension
推荐阅读
- android - 无法生成 R.string.page_title、R.string.page_title、R.layout.main 等
- neo4j - 在 neo4j 中获取关注者的帖子以及自己的帖子
- c# - 如何从同一个 .NET 应用程序中提供静态内容和动态内容?
- mysql - 在 Netbeans 中创建自动生成的 ID 时,值始终设置为 0 而不是 1
- javascript - 对我来说,出乎意料的是,从机器人框架中的 javascript 返回值。为什么?
- python - ANTLR4 + Python - 如何从侦听器访问片段令牌(子令牌)?
- laravel - 多对多关系 - 它不显示元素
- amazon-web-services - Azure Function 可以访问 Internet 吗?
- ms-access-2016 - MS Access - 根据单元格内容选择字段
- xml - 需要使用 Ktor 框架将 Saber API 集成到 SOAP xml 中