使用blockproc函数时遇到的问题

1查看(最近30天)
sudhir keshari
sudhir keshari 2021年5月15日
回答: 图像分析 2021年5月15日
我有I1图像矩阵的大小512*512,想要应用我的用户定义的功能,在每个块中,我想访问一个值(称为种子值),然后通过使用该值生成一些数字,并进一步这些值替换旧的值。我的代码是:当我运行这个程序,错误显示,请任何人可以帮助....
关闭全部
清除全部
clc
形象= imread (“C: /用户/ SUDHIR /文件/ MATLAB /莉娜image.png”);
[m, n] =大小(图片);
Blocksnumbers = m / 256
格式
myfun = @ (block_struct) fun4replace (block_struct.data)
fil11 = blockproc(图像,[256 256],myfun);
功能I = fun4replace (block_struct.data)
x (1) = 2.4;
我= 1:08
X (i+1) = mod(X (i)*2.4, block_struct.data(1,1));
结束
R = x;
s_zigzag =曲折(block_struct.data);
% s_zigf = s_zigzag(1、2:10);
s_zigzag (2:10) = R;
I = izigzag (s_zigzag);

答案(1)

图像分析
图像分析 2021年5月15日
我不知道你的函数做什么,或者它里面的zigzag函数做什么,但这段代码会让你更接近:
clc;%清除命令窗口。
关闭全部%关闭所有数据(imtool.除外)
清晰;删除所有已存在的变量。或者clearvars,如果你想的话。
工作空间;%确保显示工作区面板。
格式长g
格式紧凑的
字形大小= 18;
%读取演示图像。
grayImage = imread (“lena.jpg”);
(行、列,numberOfColorChannels) = (grayImage)大小;
如果numberOfColorChannels > 1
grayImage = rgb2gray (grayImage);
结束
%显示输入图像。
次要情节(2,1,1);
imshow (grayImage);
%dothe块处理。
Myfun = @(block_struct) fun4replace(block_struct)
blockimage = blockproc(grayImage, [256 256], myfun);
%显示输出图像。
次要情节(2,1,2);
imshow (blockyImage []);
流(完成运行% s。m…\ n”, mfilename);
%主脚本结束。
%==========================================================================
定义一些自定义函数在一个单独的块(一个矩阵)上工作。
功能outputImage = fun4replace (block_struct)
我不知道这个函数是做什么的。
x (1) = 2.4;
从block_struct中获取矩阵。
%这是图像在一个特定位置的矩阵
%,因为它扫描整个图像。这个函数将被调用
图像中的每个块位置的%。
%如果图像是512x512,块是256x256,那么
这个函数将被调用4次。
thismatrix = block_struct.data;
k = 1:8
x(k + 1) = mod(x(k) * 2.4, thisMatrix(1,1));
结束
R = x;
%调用之字形函数。
s_zigzag = zigzag(thismatrix);
% s_zigf = s_zigzag(1、2:10);
s_zigzag(1,2:10)= r;
outputImage = izigzag (s_zigzag);
结束
请参阅所附的演示以了解更多信息。

标签

s manbetx 845

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!