使用matlab程序,基于标准卡标定感压纸的压力分布

任务说明

使用富士感压纸(压力测试纸)测量压力,感压纸受压时会显现颜色,根据峰值应力呈现不同的颜色深度。感压制提供了标准比色卡,给出不同颜色深度对应的压力值。
在这里插入图片描述

要求使用matlab,对照标准比色卡,对实验中使用的比色卡进行计算,得出压力分布情况。
在这里插入图片描述
上图的测压纸使用了14次,每次得到一个小区域,分别计算每个小区域的压力分布情况。

解决思路

  1. 将所有图像转换为灰度图像处理,根据比色卡中的离散的(压力值,图像灰度)数据对,拟合出函数,自变量为颜色灰度,因变量为压力值。

  2. 将感压纸中的区域分别裁剪出来,对每个小区域划分网格,计算每个小格中的平均灰度值。

  3. 根据平均灰度值计算每个小格中的平均应力,将网格和应力值一起绘制在图像上,显示出来。

在这里插入图片描述

具体实现

%%手动分割各区域,对图像使用鼠标划方框圈出小区域,双击左键,对结果保存为.fig格式
%读入图片
X = rgb2gray(imread('14_press_paper.jpg'));
Area1 = imcrop(X);
imshow(Area1);
%%将.fig图片读入为二维矩阵形式
open('C:\Users\77607\Desktop\感压纸在matlab上的程序标定\AREA\area_total.fig');h = get(gca,'Children');Area1 = get(h,'Cdata');%图像不足的部分全部补为0。
%图像以cell单元的方式输出,其排列顺序与原图的排向顺序相同。N = 50;         %指定小格的Size[Area1_hang , Area1_lie] = size(Area1);
Integer_hang = floor(Area1_hang/N);
Integer_lie = floor(Area1_lie/N);%使用二维矩阵保存小格的总灰度和平均灰度
sum = zeros(Integer_hang, Integer_lie); 
avg = zeros(Integer_hang, Integer_lie);for i = 1 : Integer_hangfor j = 1 : Integer_lieDivided_image(i,j) = {Area1((i-1)*N+1 : i*N , (j-1)*N+1 : j * N)};temp = Divided_image{i, j};   %I()指的是单元数组中的某一单元,而I{}指的是单元数组中某一单元的内容             [m,n] = size(temp);for k=1:mfor l=1:nsum(i, j) = sum(i, j) + double(temp(k, l));endend avg(i, j) = sum(i, j)/(m*n);end
end%%根据标准比色卡拟合出函数
I1 = rgb2gray(imread('1.5Mpa.jpg'));
I2 = rgb2gray(imread('1.3Mpa.jpg'));
I3 = rgb2gray(imread('1.1Mpa.jpg'));
I4 = rgb2gray(imread('0.9Mpa.jpg'));
I5 = rgb2gray(imread('0.7Mpa.jpg'));
I6 = rgb2gray(imread('0.5Mpa.jpg'));
I7 = rgb2gray(imread('0.3Mpa.jpg'));
I8 = rgb2gray(imread('0.1Mpa.jpg'));
%单元数组,每一个单元可以有不同的尺寸,使用花括号创建
I = {I1, I2, I3, I4, I5, I6, I7, I8};
sum_stand = [0 0 0 0 0 0 0 0];
avg_stand = [0 0 0 0 0 0 0 0];
for i = 1:8temp = I{i};               [m,n] = size(temp);for j=1:1:mfor k=1:1:nsum_stand(i) = sum_stand(i) + double(temp(j, k));endend avg_stand(i) = sum_stand(i)/(m*n);
end
%%
%拟合曲线
Y = [1.5 1.3 1.1 0.9 0.7 0.5 0.3 0.1];
p2 = polyfit(avg_stand, Y, 2);   %2阶多项式拟合
%根据拟合函数计算各小格平均压力
press_val = polyval(p2, avg); %在截取的区域图像上画分割线
for i = 1 : Integer_hangArea1 = insertShape(Area1,'Line',[0 N*i N*Integer_lie N*i],'LineWidth',2,'Color','blue');
endfor i = 1 : Integer_lieArea1 = insertShape(Area1,'Line',[N*i 0  N*i N*Integer_hang ],'LineWidth',2,'Color','blue');
end
figure;
imshow(Area1);
%text(3,4,'0.001','horiz','left','color','r','fontsize',7)
hold on;
%在每个区域上标记上对应的应力值
for i = 1:Integer_hangfor j = 1:Integer_lietemp = press_val(i, j);text(50*j-45,50*i-25,num2str(temp),'horiz','left','color','r','fontsize',8)end
end

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

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

相关文章

斯坦福大学陈丹琦等人解读机器阅读最新进展:超越局部模式匹配

来源:AI 科技评论不久前,斯坦福大学的计算机科学博士陈丹琦的一篇长达 156 页的毕业论文《Neural Reading Comprehension and Beyond》成为「爆款文章」,一时引起了不小轰动。而本文是她与同样师从 Christopher Manning 的同学 Peng Qi 一起发…

Cache技术―OSCache

Cache技术―OSCache 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://aumy2008.blogbus.com/logs/36462938.html一、简介 Cache是一种用于提高系统响应速度、改善系统运行性能的技术。尤其是在Web应用中,通过缓存页面的输出结…

智能网联产业链深度报告

来源:智车科技未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网&#…

opencv画图_c++

认识画图函数 #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc.hpp> //#include<iostream>#define w 400using namespace cv;/* 大量使用 Point 和 Scalar 这两个结构&#xff1a; Point数据结构…

3月任务--target

2014过去了&#xff0c; 在再过4周左右&#xff0c; 就是在WACAI呆了一周年了。 经过这一年&#xff0c;我想我的成长是有的&#xff0c; 尤其是经过“话费账单”这个项目&#xff0c; 不过有喜有忧&#xff0c; 也许就和他们说的一样&#xff0c; 是我不容易满足吧。 都说知足…

史上最全的物理学科普(值得收藏)

来源&#xff1a;中科院物理所&#xff08;ID&#xff1a;cas-iop&#xff09;本文素材主要摘录自加来道雄的《Hypersapce》和丘成桐的《The Shape of Inner Space》。作者希望凭籍本文&#xff0c;回顾一下两百年来的科学史&#xff0c;看看那些代表着人类最高心智的数学家、物…

c++入门1

工具 NotepadVS 2015开发人员命令提示符 特点轻量化&#xff0c;Notepad可以写源代码&#xff0c;在VS 2015开发人员命令提示符可以进行编译、运行。 cd xxxxxx //进入源文件所在目录 cl xxx.cpp //在VS 2015开发人员命令提示符中编译源代码 xxx.exe //运行编译后的可执行文…

Redis数据存储解决方案

http://www.tuicool.com/articles/77nUZn 1、背景 1.1 Redis简介 官方网站&#xff1a; http://redis.io/ &#xff0c;Redis是REmote DIctionary Server的缩写。 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并…

量子通信是不是伪科学?潘建伟这样回应

来源&#xff1a;科技日报“墨子号”发射快三年了&#xff0c;到底有什么新发现&#xff1f;量子通信和公众有什么关联&#xff0c;到底是不是伪科学&#xff1f;10日&#xff0c;在全国政协十三届二次会议举行的记者会上&#xff0c;全国政协委员、中国科学技术大学常务副校长…

AI如何设计,才能人类利益最大化?

来源&#xff1a;国机智能机器人曾为现代互联网早期协议和架构设计做出贡献的Vint Cerf&#xff0c;用一个寓言来解释为什么在人工智能等新兴技术出现后&#xff0c;勇敢的领导力至关重要。想象一下&#xff0c;你住在一个被群山环绕的山谷底部的小社区里。在远处的山顶上有一块…

每天收获

每天至少看一个demo代码&#xff0c;并且每天试着写出自己的demo。不能完全靠网上的代码蒙骗自己。 转载于:https://www.cnblogs.com/happywangjia/p/4319387.html

编译 | 5G时代的游戏世界:一年后的AR与VR将会发生的几个变化

来源&#xff1a;spectrum5G已不再是研发中的技术&#xff0c;它已经离我们非常的近&#xff0c;全球许多运营商都在都在部署这一新技术。那么我们可以从这个新一代无线系统中得到什么&#xff1f;不只是更好的智能手机服务。许多公司&#xff0c;比如德国电信&#xff0c;诺基…

《麻省理工科技评论》发布“21世纪迄今十大最糟科技”

来源&#xff1a;网络大数据必须承认&#xff0c;人类总会犯错&#xff0c;在科技的发展上也是一样。所以&#xff0c;当最新一期的《麻省理工科技评论》评出今天这份“ 2000-2019 年糟糕科技清单”时&#xff0c;你千万不要以为这是一件容易的事情。如果某项科技没有达到让人欣…

javascript Array对象

一&#xff0c;创建数组对象 JavaScript的数组支持了对任何数据类型的支持&#xff0c;并不会像java&#xff0c;C#那样指定了数组类型只能存储这种类型。 我们可以使用以下三种方法来创建JavaScript数组对象&#xff0c; 1&#xff0c;var arrnew Array(); 2 , var arrnew Arr…

67 亿美金搞个图,创建知识图谱的成本有多高你知道吗?

来源&#xff1a;算法与数学之美摘要&#xff1a;我们知道强大的深度模型需要很多计算力&#xff0c;那你知道创建一个知识图谱的成本到底是多少吗&#xff1f;德国 Mannheim 大学的研究者最近仔细估算了各种知识图谱每创建一条记录所需要的成本&#xff0c;他们表示对于大型知…

怎样修改MFC中应用程序标题的图标?

一、单文档中修改程序标题的图标 1. 切换到ResourceView视图&#xff0c;右键点击Icon&#xff0c;选择“import” ,导入图标(.ico)文件 2. 在CMainFrame中的OnCreate()函数中添加如下代码&#xff1a; //设置标题栏的图标 HICON m_hIcon AfxGetApp()->LoadIcon(IDI_ICON…

黄仁勋的“数据梦” 英伟达豪掷69亿美金虎口夺食

来源 &#xff1a; Bloomberg 编译&#xff1a;网易智能 晗冰3月12日消息&#xff0c;据国外媒体报道&#xff0c; 图形图像芯片制造商英伟达同意斥资69亿美元收购芯片制造商Mellanox&#xff0c;其欲通过此举大举进军不断增长的数据中心芯片市场。据悉&#xff0c;英伟达对Mel…

MFC制作简易音乐播放器

// MFC音乐播放器Dlg.cpp : implementation file // #include "stdafx.h" #include "MFC音乐播放器.h" #include "MFC音乐播放器Dlg.h" #include "Mmsystem.h" #include "Digitalv.h" #pragma comment(lib,"Winmm.lib&…

即使达到5级自动驾驶阶段,自动驾驶“卡车”也不可能完全“无人”

来源&#xff1a;IEEE编译&#xff1a;大数据文摘 李雷、周素云感谢Waymo和Uber等创业公司&#xff0c;让我们知道了无人驾驶汽车是怎么回事。这些汽车或卡车上配备了大量的传感器&#xff0c;并且依靠强大的计算能力使人们可以放心乘坐。愿景是美好的&#xff0c;但是却忽视了…

iOS 两种方法实现左右滑动出现侧边菜单栏 slide view

现在很多的APP中都有slide view&#xff0c;左右滑动出现侧边菜单栏的功能&#xff0c;Weico这个应用就有。网上有很多第三方的类库实现了这种效果&#xff0c;其实自己代码写的话也是很简单的&#xff0c;下面我将介绍两种方法实现slide view。---- 一种是用第三方类库IIViewD…