裁剪与复原

news2025/1/12 1:42:51

目录

模型假设

模型建立

模型求解


        通过建立匹配模型实现对破碎文件的拼接复原


模型假设



模型建立


        首先对每个图片按像素值进行二值化量化,可以得到19个1980*72的矩阵,再提取每个举证最左和最右的像素值采用绝对距离法建立像素匹配模型。

二值化是图像处理的基本技术,目的是将图像增强结果转化为黑白二值图像,从而更好地得到边缘特征线。

其原理是将所有灰度大于或者等于阈值的像素判定为特殊物体,灰度值用1表示,否者灰度值用0表示。


模型求解


        对英文图片进行拼接。

BW = im2bw(I,level) 将灰度图像 I 转换为二值图像 BW,方法是将输入图像中亮度大于 level 的所有像素替换为值 1(白色),将所有其他像素替换为值 0(黑色)。

此范围与图像的类的可能信号级别相关。因此,0.5 的 level 值对应于类的最小值和最大值之间的中等强度值。

BW = im2bw(X,cmap,level) 使用颜色图 cmap 将索引图像 X 转换为二值图像。

BW = im2bw(RGB,level) 将真彩色图像 RGB 转换为二值图像。

double 是 MATLAB® 中的默认数值数据类型(类),它可为大多数计算任务提供足够的精度。数值变量自动存储为 64 位(8 字节)双精度浮点值。

Y = double(X) 将 X 中的值转换为双精度。

clear
clc

%图像导入
for i=1:19
    if(i<11)
        F(:,:,i)=imread(['00',num2str(i-1),'.bmp']);
    else
        F(:,:,i)=imread(['0',num2str(i-1),'.bmp']);
    end
    %二值化
    B(:,:,i)=im2bw(F(:,:,i),250/255);
    %取首位列
    Q(:,1,i)=B(:,1,i);
    Q(:,2,i)=B(:,72,i);
end
%结果
result=zeros(19,1);

%生成全255矩阵
y=ones(1980,1);
%y=y.*255;
%找首列
% Q(:,1,i)==y
for i=1:19
    if(Q(:,1,i)==y)
        result(1)=i;%记录序号
    end
end


%找尾列

for i=1:19
    if(Q(:,2,i)==y)
        result(19)=i;%记录序号
    end
end


% 中间(17张)匹配,从首至尾的方向
 for i=1:17
     %可能情况,人为干预
%      may=zeros(19,1);
%      n=1;
     d=ones(19,1);
     d=d.*(-1);
     for j=1:19
         fg=0;
         for t=1:19
            if(j==result(t))
                fg=1;
            end
         end
         if(fg==0)
             if(i==17)
                result(i+1)=j;
                break;
             end
             r=0;%和
             for k=1:1980
                 r=r+(double(Q(k,2,result(i)))-double(Q(k,1,j)))^2;
             end
	  %欧氏距离
             d(j)=sqrt(double(r));
         end
     end
     %最小距离
     if(i~=17)
         dmax=max(d);
         for k=1:19
             if(d(k)==(-1))
                 d(k)=dmax;
             end
         end
         dmin=min(d);
         for k=1:19
             if(d(k)==dmin)
                 result(i+1)=k;
                 break;
             end
         end
     end
 end

disp('最后碎片正确序列:');
result

%图片的保存和显示
picture=[];
for i=1:19
    picture=[picture,F(:,:,result(i))];
end
imshow(picture)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/602063.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据时代——生活、工作与思维的重大变革

最近读了维克托迈尔 – 舍恩伯格的《大数据时代》&#xff0c;觉得有不少收获&#xff0c;让我这个大数据的小白第一次理解了大数据。 作者是大数据的元老级先驱。 放一张帅照&#xff0c;膜拜下。 不过这本书我本人不推荐从头读一遍&#xff0c;因为书中的核心理念并不是特…

Django实现接口自动化平台(二)认证授权登录【持续更新中】

上一章&#xff1a; Django实现接口自动化平台&#xff08;一&#xff09;日志功能【持续更新中】_做测试的喵酱的博客-CSDN博客 下一章&#xff1a; Django实现接口自动化平台&#xff08;三&#xff09;实现注册功能【持续更新中】_做测试的喵酱的博客-CSDN博客 一、认证与…

FineBI6.0基础学习第二课 集团毛利率下滑的原因

【案例背景】 在本期分析案例中,您将扮演一个大型商品零售集团的数据分析师,应对经理交给你的任务——发现集团毛利率下滑的原因,并给出建议; 随着您一步一步的探索分析,您将通过对商品和订单的相关历史数据的分析,逐步找出影响毛利率的关键要素,并给出相应的分析结论,…

静态误差分析

分类 随机误差、系统误差、粗大误差。 随机误差&#xff1a; 大部分随机误差满足正态分布&#xff0c;具有对称性、单峰性、有界性、抵偿性。 对称性&#xff1a;绝对值相等的正负误差出现的次数相等。 单峰性&#xff1a;绝对值越小的误差出现次数越多。 有界性&#xff1…

GIS在地质灾害危险性评估与灾后重建中的实践

第一章 基本概念与平台介绍 1、基本概念 地质灾害类型 地质灾害发育特征与分布规律 地质灾害危害特征 地质灾害孕灾地质条件分析 地质灾害诱发因素与形成机理 ​ 2、GIS原理与ArcGIS平台介绍 GIS简介 ArcGIS基础 空间数据采集与组织 空间参考 空间数据的转换与处理 …

ReID专栏(三) 注意力的应用

前言 本文中提出了一种用于行人重识别的注意感知特征学习方法。该方法由一个部分注意分支&#xff08;PAB&#xff09;和一个整体注意分支&#xff08;HAB&#xff09;组成&#xff0c;并与基础再识别特征提取器进行了联合优化。由于这两个分支建立在主干网络上&#xff0c;因此…

NumPy 数值计算基础

NumPy 数值计算基础 Numpy简介Numpy创建数组对象第一种:利用array函数创建ndarray数组第二种:利用arange函数:创建等差一维数组第三种:利用linspace函数:创建等差一维数组&#xff0c;接收元素数量作为参数。第三种:利用linspace函数:创建等差━维数组&#xff0c;接收元素数量…

剑指 Offer 18. 删除链表的节点解题思路

文章目录 题目解题思路 题目 给定单向链表的头指针和一个要删除的节点的值&#xff0c;定义一个函数删除该节点。 返回删除后的链表的头节点。 注意&#xff1a;此题对比原题有改动 示例 1: 输入: head [4,5,1,9], val 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二…

Windows程序设计 学习笔记 第九章 子窗口控件

目录&#xff1a; 文章目录 一&#xff0c;按钮类1.创建子窗口拓展1——获取对话框字符尺寸的方法拓展2——获取实例句柄的方法2.子窗口传递消息给父窗口3.父窗口传递信息给子窗口拓展3 窗口句柄与ID 的相互获取① 已知窗口句柄 获取 ID②已知子窗口ID 获取 子窗口句柄 4. 按钮…

仙境传说RO怎样创建一个NPC rAthena脚本语言的hello word

仙境传说RO怎样创建一个NPC rAthena脚本语言的hello word 大家好&#xff0c;我是艾西。上一篇文章中我们有教大家怎么编译仙境传说RO服务端和客户端&#xff0c;当我们自己可以搭建架设游戏时&#xff0c;那么这个游戏在某种意义上就是我们说的算了。比如增加一些特色功能等&…

数据隐私为先:EMQX Cloud BYOC 架构解析

随着物联网的飞速发展&#xff0c;保护数据隐私和安全变得愈发重要。构建一个安全、可靠、可扩展的物联网基础设施成为企业的首要任务。 EMQ 近期推出了 EMQX Cloud BYOC&#xff0c;采用了以数据隐私为先的架构&#xff0c;为解决这些问题提供了一个理想的方案。用户可以在自…

JavaEE-Servlet的使用

目录 显示 HttpServletRequest 的常用属性获取GET请求中的query string 的内容获取 POST 请求中 body 的内容实现自动刷新构造重定向页面 显示 HttpServletRequest 的常用属性 能够返回一个页面, 显示以下内容: URL方法版本号query stringcontext path所有的 header import …

Shell脚本攻略:通配符、正则表达式

目录 一、理论 1.通配符 2.正则表达式 二、实验 1.通配符 2.正则表达式 一、理论 1.通配符 &#xff08;1&#xff09;概念 通配符只用于匹配文件名、目录名等&#xff0c;不能用于匹配文件内容&#xff0c;而且是已存在的文件或者目录。 各个版本的shell都有通配符&…

MySQL遇到的问题

注意&#xff1a;当前遇到问题都是MySQL5.7.33版本和Windows10的系统&#xff0c;MySQL服务的名称是MySQL57&#xff0c;以下出现的MySQL57只是我的MySQL服务名称&#xff0c;要根据自己的MySQL服务的名称来 可以通过“服务”&#xff0c;找到自己的MySQL服务名称&#xff0c;…

SpringBoot测试——高级配置

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ SpringBoot测试——高级配置 一、SpringBoot加…

电容器基础原理知识

电容器基础知识 电容器是一种储能元件&#xff0c;在电路中用于调谐、滤波、耦合、旁路、能量转换和延时。电容器通常叫做电容。按其结构可分为固定电容器、半可变电容器、可变电容器三种。 常用电容的结构和特点 常用的电容器按其介质材料可分为电解电容器、云母电容器、瓷介…

什么是RabbitMQ?

RabbitMQ是一个由erlang开发的消息队列。消息队列用于应用间的异步协作。 2.RabbitMQ的组件 Message&#xff1a;由消息头和消息体组成。消息体是不透明的&#xff0c;而消息头则由一系列的可选属性组成&#xff0c;这些属性包括routing-key、priority、delivery-mode&#xff…

ChatGPT与软件架构(2) - 基于Obsidian和GPT实现解决方案架构自动化

磨刀不误砍柴工&#xff0c;良好的工具可以有效提高效率。本文介绍基于Obsidian和GPT打造架构知识库的思路&#xff0c;为架构师提供整理、分享、原文: Solution Architecture Automation With Obsidian and GPT Stas Parechyn Unsplash 本文介绍的ArchVault是一个旨在帮助架构…

【100个 Unity实用技能】 | Unity 的 LOD技术(多细节层次)

&#x1f3ac; 博客主页&#xff1a;https://xiaoy.blog.csdn.net &#x1f3a5; 本文由 呆呆敲代码的小Y 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f384; 学习专栏推荐&#xff1a;Unity系统学习专栏 &#x1f332; 游戏制作专栏推荐&#xff1a;游戏制作 &…

vue3+ts+echarts5基本地图下钻~

依靠本地json文件实现省市下钻&#xff0c;有后台的可以改成服务&#xff0c;样式没有&#xff0c;vue3tsecharts5&#xff0c;一定要设宽高 html&#xff1a; <div click"back">返回</div> <div id"echartsMap" style"width: 58%; h…