使用二进制遮罩遮罩 RGB 图像

2024-04-26

我在 MATLAB 中读入了一个 RGB 图像(M x N x 3 矩阵)。我还有一个图像的二进制掩码(M x N 矩阵),对于某些感兴趣的区域来说它只是 0,而其他地方都是 1。

我正在尝试找出如何使用该二进制掩码来掩蔽 RGB 图像。我尝试过更改数据类型(使用 double 或 uint8 来查看结果是否改变,但有时它们不会改变,或者我收到错误)并且我尝试过使用各种函数,例如 conv2、immultiply、imfilter 等。

我目前所做的就是尝试将遮罩单独应用到原始图像的每个 R、G 和 B 通道(因为它的大小为 M x N)。任何掩码为 0 的地方,我都希望在原始图像中恰好为 0,而任何掩码为 1 的地方我只想不管。

到目前为止,上述功能似乎都不起作用。显然,我知道可行的方法是,如果我只是完成并执行所有这些操作,但这将是可怕的,因为 MATLAB 有这些图像函数,但我似乎无法让它们工作。

有时,imfilter 或 immultiply(取决于我如何处理图像)只会停止运行并使 MATLAB 完全崩溃。有时他们很快完成,但我要么得到全白图像,要么得到全黑图像(通过 imshow 和 imagesc)。

我已经检查以确保我的图像通道的大小与蒙版相匹配,并且我已经检查了图像和蒙版中的值,它们是正确的。我似乎无法让实际的屏蔽操作发挥作用。

有什么想法吗?也许我遗漏了 MATLAB 规则中的某些内容?

这是当前的尝试:

% NOTE: The code may not be "elegant" but I\'ll worry about optimization later.
%
% Setup image and size
image = imread(im);
[numrows, numcols, temp] = size(image); % not used currently

% Request user polygon for ROI
bw = roipoly(image);

% Set up the mask -- it is indeed all 0's and 1's
t = double(imcomplement(bw));

% "Mask" the image
z = double(image);    % Double to match up with t as a double
z(:, :, 1) = imfilter(z(:, :, 1), t);
z(:, :, 2) = imfilter(z(:, :, 2), t);
z(:, :, 3) = imfilter(z(:, :, 3), t);
imshow(z); figure; imagesc(z);

=================

EDIT

发现以下工作有效:

im_new = im_old .* repmat(mask, [1,1,3]);   % if both image and mask are uint8
imshow(im_new);

你滥用了imfilter()那里。 Imfilter 用于线性过滤操作,而不是用于掩蔽或阈值处理。最好这样做:

z = image;          % image() is also a function. 
                    % Overwriting this name should be avoided

% Request user polygon for ROI
bw = roipoly(z);

% Create 3 channel mask
mask_three_chan = repmat(bw, [1, 1, 3]);

% Apply Mask
z(~mask_three_chan) = 0;

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

使用二进制遮罩遮罩 RGB 图像 的相关文章

  • MATLAB 中的抗锯齿线和标记

    您好 我在 MATLAB 中有一张图像 我希望这条线是平滑的 看看从 0 4 到 0 8 的线 这太可怕了 当在图中使用 LineSmoothing on 运算符时 我得到了这个 我在线条上做得很好 但它也使标记变得平滑 而且它们太可怕了
  • 如何建立数据流挖掘的滑动窗口模型?

    我们遇到的情况是 流 来自传感器的数据或服务器上的点击流数据 采用滑动窗口算法 我们必须将最后 例如 500 个数据样本存储在内存中 然后 这些样本用于创建直方图 聚合并捕获有关输入数据流中异常的信息 请告诉我如何制作这样的滑动窗 如果您询
  • 如何使用 OpenCV 检测图像帧中的对象?

    我正在使用 Raspberry Pi 开发一个漫游器 它将清扫房间并捡起掉落在地上的物体 为了检测物体 我使用了在流动站操作开始时拍摄的参考图像 以及每 10 秒单击一次的图像 新图像 为了确定图像帧是否发生变化 我在参考图像和新图像之间进
  • 在 WPF 中显示 Drawing.Image

    我有一个 System Drawing Image 的实例 如何在我的 WPF 应用程序中显示这一点 我尝试过img Source但这不起作用 我有同样的问题并通过结合多个答案来解决它 System Drawing Bitmap bmp I
  • matlab矩阵中求子矩阵的通用方法

    我正在寻找一种 好 方法来在更大的矩阵 任意维数 中找到矩阵 模式 Example total rand 3 4 5 sub total 2 3 1 3 3 4 现在我希望这样的事情发生 loc matrixFind total sub 在
  • 白色像素簇提取

    我正在研究指纹毛孔提取项目 并陷入毛孔 白色像素簇 提取的最后阶段 我有两个输出图像 我们可以从中获取毛孔 但不知道该怎么做 这两个图像的尺寸不同 image1 的尺寸为 240 320 image2 的尺寸为 230 310 这是我的图像
  • 将图像文件存储在猫鼬模式的二进制数据中并以html形式显示图像

    我正在使用 Express Node js 和 Mongodb 创建上传和显示图像文件的网页 我使用 schema 将图像的二进制文件保存在 mongodb 中 这是我在index js和db js中的一点代码 var Post mongo
  • 在 MATLAB 中用两个值替换向量值

    我必须创建一个以向量作为输入的函数v和三个标量a b and c 该函数替换了的每个元素v等于a有一个二元素数组 b c 例如 给定v 1 2 3 4 and a 2 b 5 c 5 输出将是 out 1 5 5 3 4 我的第一次尝试是尝
  • 在 RGB 图像上绘制多类语义分割透明叠加

    我有语义分割掩码的结果 值在 0 1 之间 需要大津阈值来确定什么是积极的 我想直接在 RGB 图像上绘制 在 RGB 图像上每个预测类具有不同的随机颜色 我使用以下内容绘制了具有单一颜色的单个蒙版 是否有一个包或简单的策略可以为多类别做到
  • 从 url 加载图像并绘制到 HTML5 Canvas

    我在从 javascript 中的 url 加载图像时遇到问题 下面的代码可以工作 但我不想从 html 加载图像 我想使用纯 JavaScript 从 url 加载图像 var c document getElementById myCa
  • 用Python识别图像

    我对 OCR 识别和 Python 都有点陌生 我想要实现的是从 Python 脚本运行 Tesseract 以 识别 tif 中的某些特定数字 我以为我可以为 Tesseract 做一些培训 但我在 Google 和 SO 上没有找到任何
  • 在 javascript/jquery 中获取图像的完整尺寸

    我在页面上有一个图像 该图像已调整大小以适合 div 例如 400x300 如何在 jQuery 中获取图像的完整尺寸 4000x3000 width 和 height 似乎只返回图像的当前大小 图像有naturalWidth and na
  • 图像上的 JQuery 加载事件

    我想在加载图像时将图像父级的大小调整为与图像相同的大小 此时我正在使用这段代码 window load function image principale each function this parent css height this
  • 提高 pytesseract 从图像中正确识别文本的能力

    我正在尝试使用读取验证码pytesseract模块 大多数时候它都能提供准确的文本 但并非总是如此 这是读取图像 操作图像以及从图像中提取文本的代码 import cv2 import numpy as np import pytesser
  • 如何使用 Misc.imread 将图像分割为红色、绿色和蓝色通道

    我正在尝试将图像切片为 RGB 但在绘制这些图像时遇到问题 我使用此函数从某个文件夹获取所有图像 def get images path image type image list for filename in glob glob pat
  • PHP - 从图像创建一张图像

    我有 n 张图像 想用 php 代码创建一张 我使用 imagecopymerge 但无法成功 请举一些例子 Code numberOfImages 3 x 940 y 420 background imagecreatetruecolor
  • 使用 StretchDIBits 使用 Delphi 6 处理条形码图像 - 输出中缺少条形线

    我的应用程序是在 Delphi 6 中开发的 由于后台处理和大量数据 它消耗大约 60MB 120MB 物理内存 这是一个资源密集型应用程序 该应用程序的功能之一是在进行某些处理后创建条形码图像 如果用户继续生成条形码 那么至少十分之一的条
  • java.sql.SQLException:在结果集开始之前[重复]

    这个问题在这里已经有答案了 我已尝试使用以下代码来检索存储在数据库中的图像 我创建了一个名为image db包含一个名为的表image details 该表有两个字段 id and image path两者都是类型mediumblob 我在
  • CUDA、NPP 滤波器

    CUDA NPP 库支持使用 nppiFilter 8u C1R 命令过滤图像 但不断出现错误 我可以毫无问题地启动并运行 boxFilterNPP 示例代码 eStatusNPP nppiFilterBox 8u C1R oDeviceS
  • Android 如何从我的应用程序使用 SD 卡中的文件路径预览图像

    文件存在于sdcard image jpg我想创建我自己的应用程序 活动 按下按钮时 需要使用内置图像查看器显示存储在 SD 卡中的图像 按图像查看器中的后退按钮后 它应该返回到我正在运行的应用程序 需要一些帮助 您可以为此创建一个具有适当

随机推荐

  • 来自应用程序中心的 Android 11 设备上的应用程序未安装错误

    我正在研究Xamarin Forms应用程序 改变后目标SdkVersion to 30并使用最新的 sdk 11 1 在 appcenter 上构建应用程序 我收到错误App not installed仅在安卓11设备 如果我改变目标Sd
  • jquery 选择器 id、class、rel 等,其中值大于给定数字

    我想淡出所有数字属性大于或小于给定数字的 div 就像是 div id 2 fadeTo slow 0 6 但我想使用 gt 或 基本上我会把我所有的 div 命名为 div text div div text div div text d
  • 如何防止在 Google Chrome 中选择文本?

    没有 oEvent preventDefault 在GC工作 我需要防止在触发 onmove 事件时选择文本 EDIT 事实证明这很容易 function disableSelection document onselectstart fu
  • ‘access’参数模式有什么用处?

    Ada 中有三种传递参数的 正常 模式 in out and in out 但还有第四种模式 access 有什么需要它们的吗 即 否则不可能实现的事情 现在 我确实知道 GNAT JVM Ada 编译器在导入的 库 规范中大量使用了它们
  • 角度样式未应用于组件(尽管使用了主机选择器)

    我的角度项目中的组件样式存在问题 我基本上无法让它工作 为了解释我的问题 我使用 Angular CLI CLI 6 0 8 Angular 6 1 0 创建了一个新项目 我立即创建了一个新的测试组件 在其中声明了以下内容 COMPONEN
  • 最喜欢的开源 Google App Engine 应用程序(Java 或 Python)[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 你能阻止 jQuery focusout 在失去焦点时触发吗?

    我有一个输入框 我想在它失去焦点时保存它的值 非常简单的事情 我可以通过 jQuery 来完成focusout event 然而问题是我不想解雇focusout当用户单击输入框旁边的 X 图标时发生的事件 示例如下所示 因此 当用户跳出此输
  • 在 tomcat 上部署 AngularJS 应用

    我使用 yeoman 角度生成器创建了一个 AngularJS 应用程序 现在我想使用 Apache tomcat 托管它 我已经运行了 grunt build 并将所有资产准备在 dist 文件夹中 有没有办法创建 war 文件 或者我可
  • react-native limit 列表项

    我在用Flatlist https facebook github io react native docs flatlist html来自反应本机和ListItem https react native training github i
  • 在 Mobile Safari 中禁用同源策略

    我有一个 HTML5 JavaScript 应用程序 最初是为在某些汽车上运行而编写的 基本上 我需要将我的应用程序设置为在浏览器中运行 以便向客户进行简单的演示 我正在使用 jQuery ajax 它由于同源策略而导致问题 我发现了很多在
  • 有没有办法以特定顺序存储 PyTable 列?

    当使用字典或类进行模式定义以调用 createTable 时 PyTable 列似乎按字母顺序排列 我的需要是建立一个特定的顺序 然后使用 numpy genfromtxt 从文本中读取和存储我的数据 我的文本文件没有像 PyTable 那
  • IBM Worklight Server 6.2 - 在 Apache Tomcat 上运行? “等待管理服务启动超时”

    我一直在尝试设置 IBM Worklight 环境 我想使用 Windows服务器 Apache Tomcat 7 撰写本文时最新 IBM Worklight 6 2 撰写本文时最新版本 MySQL Server 5 6 撰写本文时最新 一
  • TypeScript 函数声明在接口中的区别

    TypeScript 接口中这两种函数声明有什么区别 interface IExample myFunction str string void and interface IExample myFunction str string gt
  • 如何在 Gremlin 中进行分页

    Tinkerpop 3中如何进行分页 我想获取查询的前 10 个元素 然后获取接下来的 10 个元素 而不必将它们全部加载到内存中 例如 下面的查询返回 1000 000 条记录 我想以 10 x 10 的形式获取它们 而不是一次加载所有
  • 如何在 Kivy 中设置小部件/布局的最小允许宽度/高度?

    我有包含 3 个元素的 BoxLayout 我需要第一个和最后一个元素占据最小的可用空间 中间元素具有固定比例 1 1 因此当我调整窗口大小时 侧面元素变得太小并且内容会超出其中 我需要例如标签 或按钮 甚至不同元素的集合 文本始终insi
  • 防止 iOS 在进入后台之前截取应用程序的屏幕截图

    大家可能都知道 iOS 在将应用程序放入后台之前会对其进行屏幕截图 这通常是为了更好的用户体验 例如快速动画以恢复应用程序等 我不希望我的应用程序屏幕截图存储在设备上 但我希望多任务处理仍然存在 我想出了一个解决方案 但我不确定我是否朝着正
  • Docker LABEL 用于在多阶段构建中访问构建镜像

    在 CI 构建期间 我通过添加以下内容从多阶段 Docker 构建 测试报告 中的构建映像中提取构建工件 LABEL构建步骤 然后使用带标签的图像创建一个容器以提取工件 这似乎在 Mac 版 Docker Desktop 中被破坏了 或者我
  • Android 上的 SQLite 如何处理长字符串?

    我想知道 Android 的 SQLite 实现如何处理长字符串 从 sqlite 的在线文档中读取 它说 sqlite 中的字符串限制为 100 万个字符 我的弦肯定更小 我正在创建一个简单的 RSS 应用程序 在解析 html 文档并提
  • Python 中的静态变量继承

    我正在为 Blender 的一个项目编写 Python 脚本 但我对该语言还很陌生 我感到困惑的是静态变量的使用 这是我目前正在处理的代码片段 class panelToggle bpy types Operator active Fals
  • 使用二进制遮罩遮罩 RGB 图像

    我在 MATLAB 中读入了一个 RGB 图像 M x N x 3 矩阵 我还有一个图像的二进制掩码 M x N 矩阵 对于某些感兴趣的区域来说它只是 0 而其他地方都是 1 我正在尝试找出如何使用该二进制掩码来掩蔽 RGB 图像 我尝试过