我编写了这个matlab代码,将图像矩阵划分为更小的矩阵787x1000。
在下面的代码中:首先我将读取一个图像,所以I_in = 512x512x3,然后我将其更改为二进制并重塑为(6291456x1),之后我计算所需的帧数(1帧= 1000x1)所以我将需要787.然后我分配内存到帧矩阵。代码将在这里轻松解释步骤
I_in = imread('aaaa.png');
% encoding image into array of bits
B = de2bi(I_in);
X=reshape(double(B),numel(B),1);
m= length(B);
numFrames = floor((m-1)/1000)+1;
% allocate memory to the frame matrix
frameData = zeros(numFrames,1000);
for k=1:numFrames
startAtIdx = (k-1)*1000+1;
if k~=numFrames
frameData(k,:) = X(startAtIdx:startAtIdx+1000-1);
else
% handle this case separately in case the number of input samples
% does not divide evenly by the window size
frameData(k,1:m-startAtIdx+1) = X(startAtIdx:end);
end
end
当我运行它时它会告诉我这个错误:
订阅的分配维度不匹配。
Untitled1中的错误(第20行) frameData(k,1:m-startAtIdx + 1)= X(startAtIdx:end);
我很不确定我写的输出会给我一个frameData(1x1000)的输出。
任何人都可以为此提供帮助。
问候
答案 0 :(得分:0)
尝试
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:converters="clr-namespace:Test.Converters;assembly=Test"
x:Class="Test.Views.ImagePage">
<ContentPage.Resources>
<ResourceDictionary>
<converters:Base64ToImageSourceConverter x:Key="Base64ToImageSourceConverter"/>
</ResourceDictionary>
</ContentPage.Resources>
<Image
Source="{Binding Image, Converter={StaticResource Base64ToImageSourceConverter}}"
VerticalOptions="Center"
HorizontalOptions="FillAndExpand" />
</ContentPage>
而不是
m = numel(B);