QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4725|回复: 3
打印 上一主题 下一主题

一段文字拼接的matlab代码,大家可以试试看

[复制链接]
字体大小: 正常 放大
madio        

3万

主题

1310

听众

5万

积分

  • TA的每日心情
    奋斗
    2024-7-1 22:21
  • 签到天数: 2014 天

    [LV.Master]伴坛终老

    自我介绍
    数学中国站长

    社区QQ达人 邮箱绑定达人 优秀斑竹奖 发帖功臣 风雨历程奖 新人进步奖 最具活力勋章

    群组数学建模培训课堂1

    群组数学中国美赛辅助报名

    群组Matlab讨论组

    群组2013认证赛A题讨论群组

    群组2013认证赛C题讨论群组

    跳转到指定楼层
    1#
    发表于 2013-9-15 23:18 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta |邮箱已经成功绑定

    破碎文件的拼接在司法物证复原、历史文献修复以及军事情报获取等领域都有着重要的应用。传统上,拼接复原工作需由人工完成,准确率较高,但效率很低。特别是当碎片数量巨大,人工拼接很难在短时间内完成任务。随着计算机技术的发展,人们试图开发碎纸片的自动拼接技术,以提高拼接复原效率。


    clear;

    I=imread('xingshi32.bmp');


    if(isgray(I)==0)

    disp('请输入灰度图像,本程序用来处理128 *128的灰度图像!');

    else

    if (size(I)~=[128,128])

    disp('图像的大小不合程序要求!');

    else

    H.color=[1 1 1]; %设置白的画布

    figure(H);imshow(I);

    title('原图像');

    zeroImage=repmat(uint8(0),[128 128]);

    figure(H); %为分裂合并后显示的图设置画布

    meansImageHandle=imshow(zeroImage);

    title('块均值图像');

    %%%%%设置分裂后图像的大小由于本图采用了128像素的图

    blockSize=[128 64 32 16 8 4 2];

    %%设置一个S稀疏矩阵用于四叉树分解后存诸数据

    S=uint8(128);

    S(128,128)=0;

    threshold=input('请输入分裂的阈值(0--1):');%阈值

    threshold=round(255*threshold);

    M=128;dim=128;


    %%%%%%%%%%%%%%%%% 分裂主程序%%%%%%%%%%%

    while (dim>1)

    [M,N] = size(I);


    Sind = find(S == dim);

    numBlocks = length(Sind);

    if (numBlocks == 0)

    %已完成

    break;

    end

    rows = (0:dim-1)';

    cols = 0:M:(dim-1)*M;

    rows = rows(:,ones(1,dim));

    cols = cols(ones(dim,1),:);

    ind = rows + cols;

    ind = ind(:);


    tmp = repmat(Sind', length(ind), 1);

    ind = ind(:, ones(1,numBlocks));

    ind = ind + tmp;


    blockValues= I(ind);

    blockValues = reshape(blockValues, [dim dim numBlocks]);


    if(isempty(Sind))

    %已完成

    break;

    end

    [i,j]=find(S);

    set(meansImageHandle,'CData',ComputeMeans(I,S));

    maxValues=max(max(blockValues,[],1),[],2);

    minValues=min(min(blockValues,[],1),[],2);

    doSplit=(double(maxValues)-double(minValues))>threshold;

    dim=dim/2;

    Sind=Sind(doSplit);

    Sind=[Sind;Sind+dim;(Sind+M*dim);(Sind+(M+1)*dim)];

    S(Sind)=dim;

    end

    [i,j]=find(S); % 用来寻找四叉机分解结果中大小为S的块的位置

    set(meansImageHandle,'CData',ComputeMeans(I,S)); % 显示分解结果块均值图像 Numberofbloks=length(i); %计算块数

    %sizev=size(v);

    end

    end



    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏3 支持支持0 反对反对0 微信微信
    数学建模社会化

    45

    主题

    8

    听众

    2679

    积分

  • TA的每日心情
    奋斗
    2025-4-17 10:49
  • 签到天数: 399 天

    [LV.9]以坛为家II

    社区QQ达人 新人进步奖

    群组华夏学院数模论坛

    群组2011年第一期数学建模

    群组华南理工大学

    群组小草的客厅

    群组2013年数学建模国赛备

    回复

    使用道具 举报

    0

    主题

    9

    听众

    140

    积分

    升级  20%

  • TA的每日心情
    奋斗
    2016-9-17 09:40
  • 签到天数: 53 天

    [LV.5]常住居民I

    自我介绍
    俺现为北理工的一名本科生,数学建模新手撒~~喜欢数学,希望与大家一起进步~~~爱生活,爱阳光,爱学习~

    社区QQ达人

    群组数模应用

    群组数学建模培训课堂2

    群组2013年国赛赛前培训

    群组英语科技论文写作实训

    群组MCM优秀论文解析专题

    回复

    使用道具 举报

    1

    主题

    7

    听众

    57

    积分

    升级  54.74%

  • TA的每日心情
    郁闷
    2014-1-7 22:18
  • 签到天数: 26 天

    [LV.4]偶尔看看III

    自我介绍
    我还是新手,多多关照

    群组2013认证赛A题讨论群组

    群组2013年数学建模国赛备

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-5-25 03:52 , Processed in 1.018417 second(s), 68 queries .

    回顶部