MATLAB把灰度图某些像素显示为彩色

MATLAB问题
一个灰度图像有9个像素

A=[1 2 3
     4 5 6
     7 8 9]

一个逻辑矩阵和A一样大

B=[1 0 0
     0 1 0
     1 0 1]

现在要把B中为1的位置,对应的A中的位置的像素显示为红色,只要最后看起来是红的就行。

用repmat函数把双通道图转成三通道图,然后把想换颜色的像素点的第三个通道的值改了就能显示成彩色了

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7729724
  • 你也可以参考下这篇文章:【matlab矩阵运算】02、矩阵A中减掉矩阵B所含行或者列
  • 同时,你还可以查看手册:matlab 求解关于 x 的线性方程组 Ax = B \ 中的内容
  • 除此之外, 这篇博客: (七)【Matlab】符号计算中的 A.b 符号对象的运算 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • <1>四则运算
    符号表达式的四则运算与数值运算一样,用+、-、*、/运算符实现,其运算结果依然是一个符号表达式。
    在这里插入图片描述

    <2>关系运算

    • 6种关系运算符:<、<=、>、>=、==、~=
    • 对应的6个函数:lt()、le()、gt()、ge()、ge()、eq()、ne()

    若参与运算的是符号表达式,其结果是一个符号关系表达式;若参与运算的是符号矩阵,其结果是由符号关系表达式组成的矩阵。

    在这里插入图片描述

    在进行符号对象的运算前,可用assume函数对符号对象设置域,函数调用格式为:
    assume(condition)
    assume(expr, set)

    第一种格式指定变量满足条件condition,第二种格式指定表达式expr属于set
    在这里插入图片描述

    <3>逻辑运算

    • 3种逻辑运算符:&(与)、|(或)和~(非)
    • 4个逻辑运算函数:and()、or()、not()和xor()
    • 在这里插入图片描述

    <4>因式分解与展开运算
    MATLAB提供了对符号表达式进行因式分解、展开、合并的函数,函数的调用格式为:
    fator(s):对符号表达式s分解因式。

    在这里插入图片描述

    expand(s):对符号表达式s进行展开。
    collect(s):对符号表达式s合并同类项。
    collect(s, v):对符号表达式s按变量v合并同类项。

    <5>其他计算

    • 1 提取有理分式的分子分母:[n, d]=numden(s)
      在这里插入图片描述
    • 2 提取符号表达式的系数(低位到高位):c=coeffs(s, x)
      在这里插入图片描述
    • 3 符号表达式化简:simplify(s)
    • 4符号多项式与多项式系数向量之间的转换:
      符号多项式转换为多项式系数向量:p=sym2poly(s)
      多项式系数向量转换为符号多项式:s=ploy2sum()
      在这里插入图片描述
      f只能有一种符号变量

    例子:
    在这里插入图片描述

    <6>符号运算中变量的确定

    • 如果没有明确指定自变量,MATLAB将按以下原则确定主变量并对其进行相应运算:
      寻找除了i、j之外,在字母顺序上最接近x的小写字母。
      若表达式中有两个符号变量与x的距离相等,则ASCII码大者优先。

    • symvar()函数可以用于查找一个符号表达式中的符号变量,函数的调用格式为:symvar(s,n)。函数返回符号符号表达式s中的n个符号变量。因此,可以用symvar(s, 1)查找表达式s的主变量。

  • 您还可以看一下 苏金明老师的MATLAB复变函数课程中的 复数运算-复数的乘除法、指数运算和对数运算小节, 巩固相关知识点