目录

标量

手写函数

混合图片


标量

在前面的例子中,我们看到了如何通过数字划分图像。

>> dolhphin = imread('dolphin.png');>> dolhphin / 2

除以2与乘以0.5相同。

>> dolphin * 0.5

写这两个的顺序也无关紧要。

>> 0.5 * dolphin

常数0.5称为标量,这可能是因为它缩放了图像的值。

让我们看看与原始图像相比结果如何:

将强度值减半,明显变暗。

请注意,我们可以乘以任意数字,甚至大于1。

将强度值乘以1.5可使图像更亮:

>> result = dolphin * 1.5;
>> imshow(resule);

运行结果:

我们在某些地方看到同样的褪色效果。这是由于高于255的图像值在该限制下被截断。

手写函数

在Octave中,我们可以编写一个函数来执行常见操作。

让我们把缩放变成一个函数。

>> function result = scale(img, value)result = value .* img;endfunction

我们通过输入单词function来编写函数,后面跟着返回值的变量名。

然后是等号,函数的名称和括号中的参数。

接下来是函数体。在这种情况下,我们希望结果是值和图像的乘积。

为了确保我们正在执行逐元素的乘法,让我们将" * "改为" .* "。

当其中一个值是标量时,这没有任何区别,但是当两个被乘的量是向量或矩阵时," * "和" .* "会产生不同的结果。

我们通过输入endfunction来结束这个功能。

让我们加载一个图像并尝试这个功能。

>> function result = scale(img, value);value .* img;endfunction
>>
>> dolphin = imread('dolphin.png');
>> dolphin_sc = scale(dolphin, 0.5);
>> imshow(dolphin);
>> imshow(dolphin_sc);

混合图片

在一起,并通过缩放器乘以图像强度值,让我们重新审视我们平均两个图像的例子。

我们看到除以2的除法可以重写为乘以0.5。

>> dolphin = imread('dolpthin.png');
>> bicycle = imread('bicycle.png');
>>
>> result = dolphin / 2 + bicycle / 2;
>> result = 0.5 * dolphin + 0.5 * bicycle;

现在,这导致图像具有相等的部分海豚和等量的自行车。

如果我们想改变这些比率怎么办?我们想要更多的海豚。

>> result = 0.75 * dolphin + 0.5 * bicycle;

强度值与原始图像相同,我们应该确保这些权重之和为1。通常,这被称为混合两个图像。

>> result = 0.75 * dolphin + 0.25 * bicycle;

让我们看看它的样子。

是的,我们确实从海豚图像中看到了更多的冲浪,但这有点难以辨别。

我们换一种稍微远一点的方式怎么样?

>> result = 0.85 * dolphin + 0.15 * bicycle;

更多海豚了。

我希望我们有一个函数来做这个,我们可以这样调用它。

你能帮我写这个功能吗?我来帮你。将代码放在函数体中。请记住,要返回一些内容,请将其分配给输出变量。

另请注意,a和b是要混合的两个图像,alpha是要应用于a的权重。

实现该功能后,使用不同的alpha值进行测试。

我们知道我们想要将A乘以α,并且由于一些权重需要为1,我们将B乘以α减去α。

>> funciton output = blend(a, b, alpha)alpha * a + (1 - alpha) * bendfunction
>>
>> dolphin = imread('dolphin.png');
>> bicycle = imread('bicycle.png');
>>
>> result = blend(dolphin, bicycle, 0.85);
>> imshow(result);

最后我们将它分配给输出变量,就这样,让我们看看我们得到了什么。

好的,和以前一样,现在看看改变混合权重是多么容易。

例如,我想要更少的海豚和更多的自行车。

>> result = blend(dolphin, bicycle, 0.25);

>> imshow(result);

好了。几乎看起来街上有水。

这种获取两个图像加权和的方法是alpha混合的基础。


——学会编写自己的代码,才能练出真功夫。

2.图像作为函数 | 标量、函数、混合图像_6相关推荐

  1. 计算机视觉之混合图像(Hybrid)

    这是之前做过的一个关于实现Hybrid Image的小项目,有错误及不足的地方还请批评指正- 怎么理解图像的高低频? 图像的低频部分可以理解为"轮廓",比如人脸的脸型. 图像的高频 ...

  2. matlab没有定义标量,SQL创建了标量函数但显示不存在,如何解决

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:SQL创建了标量函数但显示不存在,如何解决?回答:使用修改部分打开的自定义函数,说明函数创建成功.至于加红色的波浪线,可以不用理会, ...

  3. [转载] OpenCV-Python图像位与运算bitwise_and函数详解

    参考链接: Python中的numpy.bitwise_and ☞ ░ 前往老猿Python博客 https://blog.csdn.net/LaoYuanPython ░ 一.概述 图像的与运算主要 ...

  4. Matlab函数学习---imref2d函数(将二维图像转到世界坐标)

    实例1:实现二维图像TIF到世界坐标系的转换(设定世界坐标范围大小) 实例2:实现二维图像DCM到世界坐标系的转换(设定世界坐标范围大小和分辨率) 本例程的配套完整源码和图片素材下载 imref2d函 ...

  5. OpenCV-Python图像位与运算bitwise_and函数详解

    ☞ ░ 前往老猿Python博客 https://blog.csdn.net/LaoYuanPython ░ 一.概述 图像的与运算主要用于获取某个图像中感兴趣的部分,是针对两个图像矩阵数组或一个数组 ...

  6. matlab 图像基本矩阵,MATLAB基本的使用方法归纳(图像,矩阵及函数)

    读取图像:用imread函数读取图像文件,文件格式可以是TIFF.JPEG.GIF.BMP.PNG等.比如 >> f = imread('chestxray.jpg'); 读进来的图像数据 ...

  7. matlab中Regionprops函数详解——度量图像区域属性

    声明:原文链接https://blog.csdn.net/langb2014/article/details/49886787点击打开链接,仅学习使用,写的很不错. Regionprops:用途是ge ...

  8. 图像金字塔与resize函数

    图像金字塔 将一层层图像比喻成金字塔,层级越高,图像越小,分辨率越低. 高斯金字塔:向下降采样: 拉普拉斯金字塔:向上采样,通过金字塔低层图像重建上层未采样图像: 金字塔的产生 用高斯核对图像进行卷积 ...

  9. 有必要总结一下:matlab图像灰度调整——imadjust函数的使用

    参考:https://blog.csdn.net/Ibelievesunshine/article/details/79958899 在MATLAB中,通过函数imadjust是一个计算机函数,该函数 ...

  10. python使用matplotlib可视化线图(line plot)、使用arrow函数在matplotlib可视化图像中添加箭头(drawing arrows in matplotlib)

    python使用matplotlib可视化线图(line plot).使用arrow函数在matplotlib可视化图像中添加箭头(drawing arrows in matplotlib) 目录

最新文章

  1. mysql8.0取消授权_mysql8创建用户、删除用户、授权、取消授权
  2. arduino串口监视器显示nan_使用Arduino开发板制作摩尔斯电码生成器
  3. (z)如何在SignalTAP II中保留特定节点
  4. c语言控制数码管显示时间,数码管显示时间整点报时C语言实例
  5. 帮助文件html打不开,chm帮助文件打不开全是代码?这几种解决方法了解一下
  6. Mybatis_接口编程
  7. 你计算机使用中间层服务器,k3中间层的配置及应用问题.doc
  8. 面试篇---jq扩展自定义方法
  9. wav怎么转换成mp3?
  10. 如何用xcode写c++
  11. Linux——clamAV查杀病毒与防护
  12. 企鹅号怎么赚钱,企鹅号怎么运营,企鹅号怎么写爆文
  13. 企业微信如何通过红包活动引流?
  14. JavaScript-PC端网页特效
  15. 桌面计算机未响应怎么办,电脑桌面假死(点击无反应)怎么解决?试试这三种处理方法吧...
  16. VS2019读取文件中文乱码问题解决
  17. 使用 PhpStorm 来开发和 Debug Laravel Sail 项目
  18. 如何使用Mac的媒体键在DisplayPort,HDMI或Thunderbolt监视器上调整扬声器音量
  19. 免费的网上商城商品管理系统
  20. Socket.io 的使用

热门文章

  1. 【华为大咖分享】10.DevOps敏捷测试之道(后附PPT下载地址)
  2. oracle克隆方式安装,克隆Oracle实现快速安装数据库软件
  3. oracle数据库看开销,【Database】AIX系统下跟踪开销大的Oracle数据库进程
  4. java 1 0_【Java】1.0 开发环境
  5. C++ STL容器vector篇(三) vector容器大小和数组大小, 插入和删除元素, 存储和读取元素
  6. 机器学习十大经典算法之AdaBoost
  7. 织梦网站服务器配置,织梦本地服务器配置
  8. tplink软件升级有用吗_如何升级路由器教程:TPLink刷DDWRT更新固件
  9. C/C++求一个整数的二进制中1的个数
  10. 使用displsy:flex + overflow:hidden时子元素被压缩