Matlab学习5-图像处理之图像乘法、除法、边缘检测

2023-11-04

Matlab学习5-图像处理之逻辑运算
图像乘法、除法、边缘检测

1、图像乘法

效果
在这里插入图片描述

代码

%图像相乘

img1=imread("img\rice.png");
img2=imread("img\F4_11b_MASK.bmp");
img3=immultiply(img1,img2);

subplot(1,3,1),imshow(img1),xlabel("原图");
subplot(1,3,2),imshow(img2),xlabel("掩膜图");
subplot(1,3,3),imshow(img3),xlabel("掩膜结果图");

2、图像除法

效果
在这里插入图片描述

代码

%图像相除
img1=imread("img\F4_15a_BG.bmp");
img2=imread("img\F4_15b_WT.bmp");
img3=imdivide(img1,img2);

subplot(1,3,1),imshow(img1),xlabel("原图");
subplot(1,3,2),imshow(img2),xlabel("与原图相似的图");
subplot(1,3,3),imshow(img3),xlabel("相除后比较差异的图");

3、边缘检测
效果
在这里插入图片描述

代码

% 逻辑操作实现边缘检测
%原始图像
img=imread("img\rice.png");
figure,imshow(img),xlabel("原图");
pause;

%--------------------
%原始图像数据二值化
img=im2bw(img);
% img=imbinarize(img);
figure,imshow(img),xlabel("二值图");
% pause

%--------------------
%基于逻辑运算的边缘检测
imgSize=size(img);
row=imgSize(1,1);%行
col=imgSize(1,2);%%[row,col]=size(img);

%--------------------
%第一步:左移
imgLeftA=img;
figure,subplot(4,4,1),imshow(imgLeftA),xlabel("(a1)原图"),ylabel("向左");
imgLeftB=imgLeftA;
imgLeftB(:,1)=[];
imgLeftB=[imgLeftB ones(row,1)];%左移
subplot(4,4,2),imshow(imgLeftB),xlabel("(b1)左移");
imgLeftC=imgLeftA|imgLeftB;%或运算
subplot(4,4,3),imshow(imgLeftC),xlabel("(c1):a1 or b1");
imgLeftD=xor(imgLeftA,imgLeftC);%异或运算
subplot(4,4,4),imshow(imgLeftD),xlabel("(d1):a1 xor c1");

%--------------------
%第二步:右移
imgRightA=img;
subplot(5,4,5),imshow(imgRightA),xlabel("(a2)原图"),ylabel("向右");
imgRightB=imgRightA;
imgRightB(:,col)=[];
imgRightB=[ones(row,1) imgRightB];
imgRightC=imgRightA|imgRightB;
imgRightD=xor(imgRightA,imgRightC);
subplot(4,4,6),imshow(imgRightB),xlabel("(b2)右移");
subplot(4,4,7),imshow(imgRightC),xlabel("(c2):a2 or b2");
subplot(4,4,8),imshow(imgRightD),xlabel("(d2):a2 xor c2");

%--------------------
%第三步:上移
imgUpA=img;
subplot(5,4,9),imshow(imgUpA),xlabel("(a3)原图"),ylabel("向上");
imgUpB=imgUpA;
imgUpB(1,:)=[];
imgUpB=[imgUpB;ones(1,col)];
imgUpC=imgUpA|imgUpB;
imgUpD=xor(imgUpA,imgUpC);
subplot(4,4,10),imshow(imgUpB),xlabel("(b3)上移");
subplot(4,4,11),imshow(imgUpC),xlabel("(c3):a3 or b3");
subplot(4,4,12),imshow(imgUpD),xlabel("(d3):a3 xor c3");

%--------------------
%第四步:下移
imgDownA=img;
subplot(5,4,13),imshow(imgDownA),xlabel("(a4)原图"),ylabel("向下");
imgDownB=imgDownA;
imgDownB(row,:)=[];
imgDownB=[ones(1,col);imgDownB];
imgDownC=imgDownA|imgDownB;
imgDownD=xor(imgDownA,imgDownC);
subplot(4,4,14),imshow(imgDownB),xlabel("(b4)下移");
subplot(4,4,15),imshow(imgDownC),xlabel("(c4):a4 or b4");
subplot(4,4,16),imshow(imgDownD),xlabel("(d4):a4 xor c4");
%--------------------
%第五步:结果或
pause;
figure,imshow(imgLeftD|imgRightD|imgUpD|imgDownD),xlabel("结果或图");

点击源码素材

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Matlab学习5-图像处理之图像乘法、除法、边缘检测 的相关文章

  • 检查Matlab中脚本需要使用的函数

    我有一个别人写的代码包 我正在运行一个脚本 它调用一些函数 这些函数又调用更多函数 等等 我想获取不是 MATLAB 内置函数但属于包的一部分的函数列表 我尝试使用matlab codetools requiredFilesAndProdu
  • MATLAB 中最有效的矩阵求逆

    在 MATLAB 中计算某个方阵 A 的逆矩阵时 使用 Ai inv A should be the same as Ai A 1 MATLAB 通常会通知我这不是最有效的求逆方法 那么什么是更有效率的呢 如果我有一个方程系统 可能会使用
  • 如何在 Matlab 中使用谷歌翻译?

    我正在编写一个程序 使用 Matlab 列出电影字幕文件中的所有唯一单词 现在我有一个独特的单词列表 我想将其翻译成我的语言并在观看电影之前了解其含义 有谁知道如何在 Matlab 中使用 Google Translate 以便完成我的脚本
  • MATLAB 中的多个捕获组

    我有一个包含数字或字母的字符串a 可能紧随其后的是r or l 在 MATLAB 中 以下正则表达式返回为 gt gt regexp 10r 0 9 a l r match ans 10r 我希望10 and r分开 因为我有两个捕获组 有
  • 不等间隔时间序列的移动平均线

    我有一个证券交易所股票价格的数据集 时间 价格 但数据点之间的间隔并不相等 从 1 到 2 分钟不等 在这种情况下计算移动平均值的最佳实践是什么 如何在Matlab中实现呢 我倾向于认为 点的权重应该取决于自上一个点以来的最后时间间隔 Ma
  • MATLAB - 如何将子图一起缩放?

    我在一张图中有多个子图 每个图的 X 轴是相同的变量 时间 每个图上的 Y 轴都不同 无论是它所代表的内容还是数据的大小 我想要一种同时放大所有图的时间尺度的方法 理想情况下 可以在其中一张图上使用矩形缩放工具 并让其他图相应地更改其 X
  • 使用 MATLAB 进行线路跟踪

    我有一个图像 我想将其转换为逻辑图像 包括线条为黑色 背景为白色 当然 可以使用阈值方法来实现这一点 但我不想使用这种方式来做到这一点 我想通过使用线路跟踪方法或类似的方法来检测它 这是关于视网膜血管检测的 我找到了一个article ht
  • Matlab 和 Python 中的优化算法(dog-leg trust-region)

    我正在尝试使用 Matlab 和 Python 中的狗腿信赖域算法求解一组非线性方程 在Matlab中有fsolve https www mathworks com help optim ug fsolve html其中此算法是默认算法 而
  • matlab中类库的全局变量

    我有一些matlab声明的类 我如何声明所有类中都可见的常量 例如 这些常量可以是在所有类的方法中使用的物理常量 首先想到的是使用全局变量 还有更好的办法吗 最好在单独的文件中声明这些常量 包含常量的类是执行此操作的一种很好的干净方法 请参
  • 检测植物图片中的所有分支

    我想知道有什么可以检测下图中的所有绿色树枝 目前我开始应用 Frangi 过滤器 options struct FrangiScaleRange 5 5 FrangiScaleRatio 1 FrangiBetaOne 1 FrangiBe
  • MATLAB - 冲浪图数据结构

    我用两种不同的方法进行了计算 对于这些计算 我改变了 2 个参数 x 和 y 最后 我计算了每种变体的两种方法之间的 误差 现在我想根据结果创建 3D 曲面图 x gt on x axis y gt on y axis Error gt o
  • 访问图像的 Windows“标签”元数据字段

    我正在尝试进行一些图像处理 所以现在我正在尝试读取图像 exif 数据 有 2 个内置函数可用于读取图像的 exif 数据 问题是我想读取图像标签 exifread and imfinfo这两个函数都不显示图像标签 Is there any
  • 检测数据集中线性行为的算法

    我已经发布了一个关于对数据集的一部分进行多项式拟合的算法 https stackoverflow com q 17595932 2320757前一段时间收到一些建议去做我想做的事 但我现在面临另一个问题 我尝试应用答案中建议的想法 我的目标
  • Matlab dec2bin 给出错误的值

    我正在使用 Matlab 的 dec2bin 将十进制数转换为二进制字符串 但是 我得到了错误的结果 例如 gt gt dec2bin 13339262925365424727 ans 101110010001111010010100111
  • 快速有效地计算已知特征值的特征向量

    我的问题的简短版本 计算矩阵特征向量的最佳方法是什么A 如果我们已经知道属于特征向量的特征值呢 更长的解释 我有一个很大的随机矩阵A由于它是随机的 因此具有非负左特征向量x 这样A Tx x 我正在寻找快速有效的方法来数值计算这个向量 最好
  • 如何在 MATLAB 中绘制纹理映射三角形?

    我有一个三角形 u v 图像中的坐标 我想在 3D 坐标处绘制这个三角形 X Y Z 与图像中的三角形进行纹理映射 Here u v X Y Z都是具有三个元素的向量 代表三角形的三个角 我有一个非常丑陋 缓慢且令人不满意的解决方案 其中我
  • MATLAB 列含义的内存分析

    我正在使用 MATLAB 配置文件来使用命令观察内存 profile memory on profile clear my code profile report and i got this table 1 我想问一下什么意思 已分配内存
  • 从动态 Java 类路径导入 Java 类时出现 Matlab 编译器 MCC 错误

    我怎样才能得到mcc识别来自用户提供的 Java 库的导入 还是简单地忽略无法解析的导入 我有一个使用 Matlab 编译器构建的 Matlab 代码库 但构建正在中断 因为mcc遇到的时候会报错importMatlab 动态类路径上的 J
  • 在 C++ 中使用 matlab 结构(matlab 函数调用的返回值)(由 matlab 编译器生成的库)

    你好 我有一个相当简单的 matlab 函数 例如 function MYSTRUCT myfunc MYSTRUCT prop1 test MYSTRUCT prop2 foo MYSTRUCT prop3 42 end 我用 matla
  • 读出 Matlab / Octave fft2() 函数输出的特定点

    我正在熟悉 Octave 及其功能fft2 在此玩具示例中 我的目标是生成以下 256 x 256 png 图像的 2D DFT 为了能够轻松理解输出 我尝试将此图像转换为 256 x 256 图像 消除颜色信息 Im imread cir

随机推荐

  • 【模型部署】Tensorrt学习记录

    tensorrt官方文档 https docs nvidia com deeplearning tensorrt archives tensorrt 723 一 简介 TensorRT是一种深度学习框架 是一种库 官方文档中的称呼是 Ten
  • Oracle查询表字段信息及注释

    查询字段信息 SELECT FROM all tab columns WHERE OWNER OWNER NAME AND TABLE NAME TABLE NAME 或者 SELECT FROM user tab columns WHER
  • 路由表的由来

    路由表的实现方法有三种 1 直连路由 2 静态路由 3 动态路由 直连路由 开启了路由器借口之后 路由表自动感知而来 当路由器吧两个接口的ip地址配置好并开启 就能从其路由表内看到这两个直连子网已经被记录 静态路由 由管理员手工配置的路由
  • webstorm中本地eslint的配置和使用,线上找不到eslint(2018版)

    前言 在webstorm中配置vue的eslint检查 注意 如果 webstrom 搜不到eslint插件 START 解决办法 1 安装 ESlint插件下载 https plugins jetbrains com p
  • MySQL中的事件

    MySQL中的事件 event 是用于执行定时或周期性的任务 类似Linux中的crontab 但是后者只能精确到分钟 事件可以精确到秒 既然MySQL自身能实现定时性任务 那么就不必在应用层实现了 事件由一个特定的线程来管理的 也就是所谓
  • Python 23.opencv 单对象模板匹配

    import cv2 import numpy as np from matplotlib import pyplot as plt img cv2 imread lane jpg 0 img2 img copy template cv2
  • STM32F030 多通道ADC DMA采集

    利用STM32F030C8T6的PA0和PA1引脚来进行两通道ADC采集 通过DMA方式 直接上代码 1 ADC的GPIO引脚配置 void ADC GPIO Config void GPIO InitTypeDef GPIO InitSt
  • 相机旋转 缩放效果 模型整体展示 部分展示

    using UnityEngine using System Collections using System Collections Generic using DG Tweening using UnityEngine EventSys
  • 修改Android镜像文件 ramdisk.img、system.img、userdata.img获取root权限

    首先 介绍一下这三个文件 ramdisk img 是你make android源代码后 生成的 out target product generic root目录下经过打包压缩而成的 system img 是你make android源代码
  • JavaWeb项目导致Linux服务器CPU过高的解决方案

    最近我部署在centos7上的一个项目出现了CPU达到了100 的状态 导致项目崩溃 起初没重视 直接重启项目解决 后面项目运行了几天服务器又报警100 了 这个时候我才意识到项目问题的严重性 然后开始查找原因 查看数据库连接池 发现数据库
  • 关于class.getResourceAsStream() 与class.getClassLoader().getResourceAsStream()区别

    首先用类加载资源文件的方式可以有以下三种 包结构图 1 InputStreaminStream DaoFactory class getResourceAsStream dao properties 2 inStream DaoFactor
  • ES6模块化及webpack配置

    前端使用的一个模块打包工具 https webpack js org webpack安装 安装 node npm 因为webpack是基于node开发的 通过 npm yarn 的方式来安装 webpack 安装方式 全局安装 npm in
  • Linux C++ 网络编程基础(2) : TCP多线程一个server对应多个client

    目录 一 linux posix线程相关函数介绍 二 tcp server基础版本 三 tpc服务端多线程版本 四 tpc客户端代码 tcp编程时 一个server可以对应多个client server端用多线程可以实现 linux下多线程
  • bash_profile和.bashrc的区别

    1 etc profile 此文件为系统的每个用户设置环境信息 当用户第一次登录时 该文件被执行 并从 etc profile d目录的配置文件中搜集shell的设置 2 etc bashrc 为每一个运行bash shell的用户执行此文
  • Java中关于thread的停止问题

    stop Deprecated public final void stop Throwable obj 已过时 该方法具有固有的不安全性 请参阅 stop 以获得详细信息 该方法的附加危险是它可用于生成目标线程未准备处理的异常 包括若没有
  • DES加密Delphi、C#互通(CBC加密模式)

    Delphi 目录 https blog csdn net dkbnull article details 87935698 unit Unit1 interface uses Windows Classes SysUtils Dialog
  • Docker实战-编写Dockerfile

    一 编译镜像 1 编译镜像 Dockerfile类似于Makfile 用户使用docker build就可以编译镜像 使用该命令可以设置编译镜像时使用的CPU数量 内存大小 文件路径等 语法 docker build OPTIONS PAT
  • 初学Spring框架

    Spring 是一个java 项目开发的框架技术 所谓框架可以看成一个项目的半成品 已经具备了一个项目项目的基本骨架部分 需要自己实现一些具体的内容 Spring官网 初学Spring框架 Spring Framework 简介 IoC 入
  • Unity实战篇:讨论动画过程和计算伤害之间的关系

    在开发游戏的时候 我们会遇到这样的需求 当人物的攻击落到敌人身上时 播放特效 声效 产生伤害 等等一系列要求 那么我们要怎么实现呢 先了解一下怎么添加动画帧事件 https blog csdn net qq 15020543 article
  • Matlab学习5-图像处理之图像乘法、除法、边缘检测

    Matlab学习5 图像处理之逻辑运算 图像乘法 除法 边缘检测 1 图像乘法 效果 代码 图像相乘 img1 imread img rice png img2 imread img F4 11b MASK bmp img3 immulti