我不知道你的函数做什么,或者它里面的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);
结束
请参阅所附的演示以了解更多信息。