我如何计算均值和方差的一个通道使用blockproc ?

14日视图(30天)
我艾米试图计算出基于块图像的均值和方差的每个通道使用blockproc通过8×8块大小。分割后的图像到它的渠道(RGGB格式),我使用blockproc至于红色通道(I_r)
fun1 = @ (block_struct)意味着(block_struct.data);
mean_ch = blockproc (I_r [8], fun1);
fun2 = @ (block_struct) var (block_struct.data);
方差= blockproc (I_r [8], fun2);
散射(mean_ch方差);%均值和方差的散点图
我得到的错误说blockproc输入参数太多了。考虑我的语法文档,我无法图问题是什么。为什么说“输入参数太多了吗?有不同的方式找到与blockproc均值和方差吗?任何帮助都是感激。
2的评论
迪Sundresh
迪Sundresh 2021年12月11日
我刚看到你写的一个条目。没有一个虚拟文件。

登录置评。

接受的答案

图像分析
图像分析 2021年12月10日
编辑:图像分析 2021年12月10日
您需要使用 (:) 将数据块变成一个列向量,否则你会得到多个值而不是一个。
% = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
%定义的函数,我们将适用于每一块。
%首先在这个演示我们将标准差块的灰度值
%和创建一个平等的块大小,所有像素的标准偏差值。
%的形象将是相同的尺寸,因为我们正在使用的()和对每个块
%会有一块8 * 8的输出像素。
stdFilterFunction = @ (theBlockStructure)性病(theBlockStructure.data(:)) *的(大小(theBlockStructure.data)类(theBlockStructure.data));
%注意:它的(大小(theBlockStructure.data)类(theBlockStructure.data))
%的输出是相同的大小作为输入而不是1/8th输入的大小。它基本上复制标准差像素8×8平方。
% = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
%标准差8 8像素的像素块
%块处理图像中的每一个像素都取代
% 8像素由8由单个像素的像素块中的像素值的标准差。
blockSize = [8];
%怪癖:必须把grayImage单引号或双与性病()。
% blockyImage8888 = blockproc (grayImage、blockSize stdFilterFunction);%是行不通的。
blockyImage8888 = blockproc(双(grayImage), blockSize stdFilterFunction);%的工作原理。
(行、列)= (blockyImage8888)大小;
看到我的 在演示 为一个完整的演示。
或者你可以尝试非常刻薄的()而不是意味着(),和var2代替var () ()。
3评论
迪Sundresh
迪Sundresh 2021年12月11日
我得到了这个输出:
> > - blockproc
/ matlab工具箱/图片/图像/ blockproc.m
我还没有命名脚本blockproc。m:)

登录置评。

更多的答案(2)

马特·J
马特·J 2021年12月10日
如果你下载它会更有效率 sepblockfun () 相反,
=双(rgbImage);
意味着= sepblockfun ([8 8 1],“的意思是”);
var = sepblockfun (a ^ 2, [8 8 1],“的意思是”)——的意思。^ 2;
1评论
迪Sundresh
迪Sundresh 2021年12月10日
只要求我是使用blockproc,这就是为什么我所面临的问题。你能告诉我怎样我能做到blockproc本身?

登录置评。


迪Sundresh
迪Sundresh 2021年12月11日
我能够正确执行代码,它是一个年长的功能是保存为blockproc我下载任务时,干扰我的代码。我删除它和blockproc工作正常。谢谢你们所有人的帮助!

s manbetx 845


释放

R2020b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!