matlab图像均匀分割

这是在指导本科生毕业设计的过程中,想到的一个方法,可以为以后遥感图像的处理做铺垫: 

 
用matlab给图像分块并保存 - 露沙 - 成淀于深
 
 
[FileName,PathName] = uigetfile('*.*','Select the image');  
Im=imread([PathName FileName]);
imshow(Im)
hold on
L = size(Im);
height=160;
width=160;
max_row = floor(L(1)/height);%实验图片为800*1280,则max_row=5,max_col=8
max_col = floor(L(2)/width);
seg = cell(max_row,max_col);
%分块
for row = 1:max_row      
    for col = 1:max_col        
    seg(row,col)= {Im((row-1)*height+1:row*height,(col-1)*width+1:col*width,:)};   
    end
end 
for i=1:max_row*max_col
imwrite(seg{i},strcat('m',int2str(i),'.bmp'));   %把第i帧的图片写为'mi.bmp'保存
end
%画出分块的边界
for row = 1:max_row      
    for col = 1:max_col  
 rectangle('Position',[160*(col-1),160*(row-1),160,160],...
         'LineWidth',2,'LineStyle','-','EdgeColor','r');
        end
end 
hold off


复杂版本,考虑了重叠和边界不完整部分,请参考
http://gzc828.blog.163.com/blog/static/104123664201331190646/
### 使用全连接神经网络训练MNIST数据集 为了使用全连接神经网络来处理MNIST数据集,以下是详细的流程和代码示例: #### 数据预处理 在构建模型前,需先导入必要的库并加载MNIST数据集。该数据集由28×28像素的手写数字灰度图构成。 ```python import tensorflow as tf from tensorflow.keras import datasets, layers, models import matplotlib.pyplot as plt (train_images, train_labels), (test_images, test_labels) = datasets.mnist.load_data() train_images = train_images.reshape((60000, 28 * 28)).astype('float32') / 255 test_images = test_images.reshape((10000, 28 * 28)).astype('float32') / 255 ``` 上述代码实现了对原始图片尺寸调整以及归一化操作[^4]。 #### 构建模型结构 接着定义一个多层感知机架构,这里采用四层隐藏层设计,每层节点数目依次减少,并加入Dropout防止过拟合现象发生。 ```python model = models.Sequential([ layers.Dense(1000, activation='relu', input_shape=(28 * 28,)), layers.Dropout(0.2), layers.Dense(300, activation='relu'), layers.Dropout(0.2), layers.Dense(64, activation='relu'), layers.Dense(10, activation='softmax') ]) ``` 此部分展示了如何创建一个具有四个隐含层的多层感知器(MLP),其中包含了两次dropout操作以增强泛化能力[^1]。 #### 编译与训练模型 完成模型搭建之后,则可对其进行编译设置损失函数、优化算法等超参数,并启动训练过程。 ```python model.compile(optimizer='adam', loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True), metrics=['accuracy']) history = model.fit(train_images, train_labels, epochs=10, batch_size=64, validation_split=0.2) ``` 通过指定Adam作为优化器,交叉熵作为目标函数来进行监督式学习任务下的性能评估指标计算[^2]。 #### 测试与可视化结果 最后一步是对测试样本执行推理运算得到最终预测类别标签,并绘制出训练期间各项统计信息变化趋势图表以便直观理解整个实验效果。 ```python test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2) plt.plot(history.history['accuracy'], label='Training Accuracy') plt.plot(history.history['val_accuracy'], label = 'Validation Accuracy') plt.xlabel('Epochs') plt.ylabel('Accuracy') plt.legend(loc="lower right") plt.show() ``` 以上即为利用Keras框架下基于TensorFlow后端实现的一个完整的MNIST手写字母识别案例介绍[^5]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值