MATLAB【二】————图像做减法,批量文本处理,子图显示
clear;
clc;
close all;name_string = ["1.5ms\100\"
];length = strlength(name_string);
[m,n] =size(length);%%----------------------------- for num=1:mstr = name_string(num,1); figure('color', [1, 1, 1], 'position', [0, 0, 1800,800]); % 为区分边界,将底色改为灰色 %%----------------读入图像------------- img_path_A = fullfile('D:\data\youtu0712\正对\下午第二组\',str,'raw\1speckle.bmp');[A1, map_a] = imread(img_path_A); info_A = imfinfo(img_path_A);A1 = double(A1);A = imrotate(A1,-90);img_path_B = fullfile('D:\data\youtu0712\正对\下午第二组\',str,'raw\1ir.bmp');[B1, map_b] = imread(img_path_B); info_B = imfinfo(img_path_B);B1 = double(B1);B = imrotate(B1,-90);%% %%----------------数据处理-------------
% w_a = info_A.Width;
% h_a = info_A.Height;w_a = info_A.Height;h_a = info_A.Width;% 创建与图象大小相对应的网格[x_a,y_a] = meshgrid(1:w_a,1:h_a);z_a =x_a - y_a + y_a -x_a;i_a = 1;j_a = 1;% 用图象灰度值填充高度值while (i_a - 1) * w_a + j_a <= w_a * h_az_a(i_a,j_a) = A(i_a,j_a);j_a = j_a + 1;if j_a > w_aj_a = 1;i_a = i_a + 1;end endsubplot(131)title('sp')% 绘制三维图象meshc(x_a,y_a,z_a);surf(x_a,y_a,z_a,'FaceColor','interp','EdgeColor','none','FaceLighting','phong') view(0,90)colormapcolorbar%%----------------数据处理-------------
% w_b = info_B.Width;
% h_b = info_B.Height;w_b = info_B.Height;h_b = info_B.Width;[x_b,y_b] = meshgrid(1:w_b,1:h_b);z_b = x_b - y_b + y_b - x_b;i_b = 1;j_b = 1;% 用图象灰度值填充高度值while (i_b - 1) * w_b + j_b <= w_b * h_bz_b(i_b,j_b) = B(i_b,j_b);j_b = j_b + 1;if j_b > w_bj_b = 1;i_b = i_b + 1;end endsubplot(132); title('ir');meshc(x_b,y_b,z_b);surf(x_b,y_b,z_b,'FaceColor','interp','EdgeColor','none','FaceLighting','phong'); view(0,90)
% colormapcolormap(parula)colorbar%%
%%----------------数据处理-------------
%%----------------读入图像,做减法,找出差异-------------
% C = imsubtract(A,B);%A-B
% C = bsxfun(@minus,A,B);C = A - B;
% C = B - A ; w_c = 800;h_c = 1280;% 创建与图象大小相对应的网格[x_c,y_c] = meshgrid(1:w_c,1:h_c);z_c = x_c - y_c + y_c - x_c;i_c = 1;j_c= 1;over_expourse_count = 0;while (i_c - 1) * w_c + j_c <= w_c * h_cz_c(i_c,j_c) = C(i_c,j_c)+128;if(z_c(i_c,j_c)>255)over_expourse_count=over_expourse_count+1; z_c(i_c,j_c)=255;elsez_c(i_c,j_c)=0;endj_c = j_c + 1;if j_c > w_cj_c = 1;i_c = i_c + 1;end end title(['The overexposure num is =' num2str(over_expourse_count)])subplot(133) title('深度差') surf(x_c,y_c,z_c,'FaceColor','interp','EdgeColor','none','FaceLighting','phong') view(0,90)colormap( subplot(133),gray(2))
% colormap( subplot(133),parula(5))colorbar;%%
% %%----------------去除空白区域-------------set(gcf, 'InvertHardCopy', 'off'); % 让设置的背景色有效sub_row = 1; % 子图行数sub_col = 3; % 子图列数for i_row = 1 : sub_rowfor j_col = 1 : sub_colorder = (i_row-1)*sub_col+j_col; % 子图的顺序subplot(sub_row, sub_col, order);RemoveSubplotWhiteArea(gca, sub_row, sub_col, i_row, j_col); % 去除空白部分endend
% saveas(figure(num), ['substract\sp_substract_ir_', char(str),'.bmp'])str_to_char =char(str);str_for_path = replace(str_to_char,'\','a'); %str_for_path = replace(str_to_char,'_','b'); saveas(figure(num), ['substract2\_',str_for_path,'.bmp'])end
调用函数
function [] = RemoveSubplotWhiteArea(gca, sub_row, sub_col, current_row, current_col)
% 设置OuterPosition
sub_axes_x = current_col*1/sub_col - 1/sub_col;
sub_axes_y = 1-current_row*1/sub_row; % y是从上往下的
sub_axes_w = 1/sub_col;
sub_axes_h = 1/sub_row;
set(gca, 'OuterPosition', [sub_axes_x, sub_axes_y, sub_axes_w, sub_axes_h]); % 重设OuterPosition% TightInset的位置
inset_vectior = get(gca, 'TightInset');
inset_x = inset_vectior(1);
inset_y = inset_vectior(2);
inset_w = inset_vectior(3);
inset_h = inset_vectior(4);% OuterPosition的位置
outer_vector = get(gca, 'OuterPosition');
pos_new_x = outer_vector(1) + inset_x; % 将Position的原点移到到TightInset的原点
pos_new_y = outer_vector(2) + inset_y;
pos_new_w = outer_vector(3) - inset_w - inset_x; % 重设Position的宽
pos_new_h = outer_vector(4) - inset_h - inset_y; % 重设Position的高% 重设Position
set(gca, 'Position', [pos_new_x, pos_new_y, pos_new_w, pos_new_h]); %(此程序摘自博客 http://blog.csdn.net/shanchuan2012/article/details/53980288 )%%%%%%%function 调用方法
% set(gcf, 'InvertHardCopy', 'off'); % 让设置的背景色有效
% sub_row = 1; % 子图行数
% sub_col = 3; % 子图列数
% for i_row = 1 : sub_row
% for j_col = 1 : sub_col
% order = (i_row-1)*sub_col+j_col; % 子图的顺序
% subplot(sub_row, sub_col, order);
% %plot(x,y,'r.');
% RemoveSubplotWhiteArea(gca, sub_row, sub_col, i_row, j_col); % 去除空白部分
% end
% end
相关文章:

与数据有关的问题
◆ 背景说明 在为用户排查问题,解决问题时,有一种情况是不容易引起大家注意的,那就是用户的数据;比如,数据中有某些特殊字符,引起展现不了或展现不正常;现在ÿ…

【PAT (Basic Level) 】1024 科学计数法 (20 分)
科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [][1-9].[0-9]E[][0-9],即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的正负号即使对正数也必定明确给出。 现以科学计数法…

jsp 实栗 jsp + jdbc 登录
jsp 实栗 jsp jdbc 实现登录 实现思路 一个表单页,输入用户登录和密码,然后信息提交到jsp页面进行验证,如果可以服务器跳转到登录成功页,失败,跳转到错误页 跳转的时候窗口的URL地址会发生变化 代码如下 编写登录代码…

OpenCV 【十】——Gamma校正 ——图像灰度变化
Gamma校正(C、OpenCV实现) 1.作用: Gamma校正是对输入图像灰度值进行的非线性操作,使输出图像灰度值与输入图像灰度值呈指数关系: 伽玛校正由以下幂律表达式定义: 2.函数原型 void calcHist( const Mat*…

Linux磁盘阵列技术详解(二)--raid 1创建
我在Linux磁盘阵列技术详解(一)里已经详细介绍了几种RAID磁盘阵列方式,原理以及创建raid 0 的详细步骤。那么这篇文档就着重讲解如何创建raid 1的技术:步骤如下:① 分区同样我们还是以一块硬盘的不同分区为例ÿ…
【PAT (Basic Level) 】1025 反转链表 (25 分)
给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转。例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4;如果 K 为 4,则输出应该为 4→3→2→1→5→6,即…

C#关于窗体的传值
关于窗体之间的传值我在《编程技巧与维护》杂志上写过总结文章,比较久远了。 开始的时候,用下面的方法传递,程序运行正常。 Form1 f1 this.Owner as Form1; //Form1 f1 (Form1)this.Owner;(这样写也可以) …

MATLAB【四】 ————批量适配图片信息与excel/txt等文档信息,批量移动拷贝图片,批量存图片中点和方框
1、批量读取图片,批量读取文件 2、适配文件与excel、txt等文档信息 3、获取显示图片ROI、Point、rect、更改像素值 4、批量移动拷贝图片,批量显示 5、保存显示图片或者图片中的点和方框。 clear; clc; close all;%% crop the im into 256*256 num 0…

mysql日志文件相关的配置【2】
1、二进制日志是什么? mysql 的二进制日志用于记录数据库上做的变更、 2、二进制日志什么时间写到磁盘 1、总的来说二进制日志会在释放锁之前就写入磁盘、也就是说在commit完成之前;client还没发送commit这个时候mysql并不把binlog写入磁盘、 别一方面my…

【PAT (Basic Level) 】1028 人口普查 (20 分)
某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200 岁的老人,而今天是 2014 年 9 月 6 日,所以…

SW6206超级华为快充5V5A,全协议OPPO闪充、自带电量计量、LED 灯/数码管显示
深圳市展嵘电子有限公司有需要的上帝可联系小陈:136-6225-3950 : 3412-1522-98SW6206 是一款高集成度的多协议双向快充移动电源专用多合一芯片,支持AABCL 口任意口快充。其集成了5A高效率开关充电,20W高效率同步升压输出,PPS/PD/Q…

bash脚本【一】——批量处理文件
Bash脚本2.0 #!/bin/bashoutput_root_dir"0723weixin" data_root_dir"D:/data/"$output_root_dir config_dir"config"# speckle_name"SPEACKLEIMAGE.bmp" # ir_name"IRIMAGE.bmp" # rgb_name"RGBIMAGE.jpg" # co…

【PAT (Basic Level) 】1030 完美数列 (25 分)
给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列。 现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。 【输入格式】&…

运营商劫持处理
测试URL:因近期发现长宽资源经常出现被劫持和转发错误的现象。解决办法如下:1、把转发列表写到named.conf文件里,更新我们的转发ip2、然后编写策略针对我们要去的域名从BGP出口出去,防止NAT。x.x.x.x.com,(…

oracle维护数据的完整性
转自:https://www.cnblogs.com/roger112/p/7722376.html 介绍: 数据的完整性用于确保数据库数据遵从一定的商业的逻辑规则。在oracle中,数据完整性可以使用约束、触发器、应用程序(过程、函数)三种方法来实现,在这三种方法中&…

MATLAB【五】———— matlab 调用C++生成exe文件,高斯核函数
两种方式调用C生成的exe文件, 语法: status system(command) [status,cmdout] system(command) [status,cmdout] system(command,-echo) 说明 status system(command) 调用操作系统执行指定的命令。操作会等待命令执行完毕,然后再将命令…

REACT day 1
https://facebook.github.io/react/ A JAVASCRIPT LIBRARY FOR BUILDING USER INTERFACES Declarative views make your code more predictable and easier to debug. React是Facebook在2013年发布的一个前端框架,而如今的React俨然已经演变成一个前端生态ÿ…

win10+Chrome浏览器截长图方法
本方法亲测可行,操作系统为win10,其他操作系统没有试过。 部分内容基于https://blog.csdn.net/ianly123/article/details/80565614并进行修正。 打开 Chrome 浏览器,进入需要截图的网站页面。打开开发者工具:在页面任何地方点击…

如何打造一流的视觉AI技术
本次分享主要分以下几个部分:首先简要介绍一下计算机视觉技术的相关背景,然后结合格灵深瞳的实践,从算法研发、训练平台、智能数据处理、异构计算等几个方面着重介绍如何打造一流的视觉AI技术,最后介绍格灵深瞳在相关技术落地方面…

MATLAB【六】 ———— matlab 随机散斑模拟
%% %input for image size(NX,NY) <散斑图大小(像素)> NX 1280; NY 800; %input for numble of speckles(S)<散斑数量> S 9226; %输入的散斑大小 a 4; %input for peak intensity of each speckle(I0)<散斑峰值强度> I0 1; %input …

【Python】zip函数
zip()函数用于将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回这些由元组组成的列表。 如果各个迭代器的元素不一致,则返回列表长度与最短的对象相同。 利用*号操作符,可将元组解压为列表。 >>> a …

CentOS 7.0,启用iptables防火墙
CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。1、关闭firewall:systemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止firewall开机启动2、安装iptables防火墙yum install iptables-services…

手撸 webpack4.x 配置(一)
现在的前端开发框架 ,都绕不开 webpack 打包 。 但绝大数前端开发人员 基本都是用 脚手架 自动生成 一套开发环境 如: vue-cli , create-react-app等 , 但开发中总会遇到各种问题 ,基本都是 webpack 配置问题 , 每次遇到基本都是…

MATLAB【七】———— matlab 高斯核使用,超像素图像模拟,矩阵转图像,深度相机模型实践实现
深度模型,图片转稀疏矩阵,稀疏矩阵转图片 %% mat to 2array temp_speckle ref_speckle; [row_index,col_index,v]find(temp_speckle); obj_matrix [row_index,col_index]; [obj_matrix_height,obj_matrix_width] size(obj_matrix);%% depth camera m…

jsp 出现cannot be resolved to a type问题解决办法
(1)检查<% page import>是否导入了相关的包。若是没有则需导入 (2)若导入相应的包后问题仍然存在则需创建相关的servlet转载于:https://www.cnblogs.com/wth21-1314/p/6126655.html

U盘中毒了?教你如何删除System Volume Information这个顽固文件夹
不得不说cmd命令很好用呢。最近我的U盘中毒了,格式化都删除不了System Volume Information这个顽固的文件夹,真心伤不起哇!还好现在解决了问题。看来以后得好好对待U盘,不能乱用了。本篇文章教大家如何删除System Volume Informat…

69亿美元英伟达史上最大收购!这家基金又赢了
。另一方面,在虚拟货币的浪潮告一段落之后,英伟达需要给增速放缓的数据中心业务注入一枚强心剂。 有意思的是,英伟达对Mellanox的收购也成就了国际知名维权对冲基金Starboard Value LP的又一次投资胜利。 击败微软、英特尔,交易…

基础数据结构【一】————数组
二维数组相乘,矩阵相乘, #include <iostream> using namespace std;void MatrixMultiply(int*, int*, int*, int, int, int); int main() {int M, N, P;int i, j;//矩阵A部分 cout << "请输入矩阵A的维数(M,N): " << endl;…

Fragment 和 FragmentActivity的使用
Fragment 和 FragmentActivity的使用 http://blog.csdn.net/izy0001989624/article/details/17072211转载于:https://www.cnblogs.com/as3lib/p/6126761.html

win10 VMware15 安装 CentOS6.4 64位(慢慢弄吧,别急)
参考:CentOS 6.4安装(超级详细图解教程) 可以都不勾,有需要,以后使用中有需要再手动安装 除了KDE,其他都选就可以了 系统管理、虚拟化、负载平衡器、高可用性可以都不选