实践出真知。

问题一:图片显示为纯白或者纯黑。

为了减少维度带来的不便,我这里以灰度(gray image)作示例,原理是一样的。

示例:

执行  img1 = imread('a1.jpg'), 在工作区可以看到读进来的格式为,注意这里是 unit8格式,就是 unsigned int 8,就是无符号整形并且用8位表示,数值范围从0~255,点开img1查看也正是如此,如下图:

.

然后我现在执行: img2 = double(img1),将unit8数据类型改变为double,然后imshow(img2),显示如下

显示一片白的.然后我令  img3 = double(img)/255 ,用imshow()又可以显示了,如下图:   为什么会这样?

原因和解决办法: imread()在读取double数据类型的图像时,默认其值范围是 0~1,如果大于1,就默认显示为白色,所以没有归一化的 img2 = double(img1) 显示为白色, 归一化的 img3 = double(img)/255 正常显示。(附:灰度图中 0表示黑色,255表示白色)因此,要用imshow显示double数据类型的图片,记得要保持数据在0~1之间,或者转换成unit8类型的数据,就可以直接显示了。(当然,这里可能会丢失精度。)

问题二:imshow()显示图像为杂点(噪音)

问题描述imshow()出来的图片又颜色灰度的不同,但是杂乱无章,没有空间结构,整体看起来是一幅噪音图。

思考:有灰度等级的不同,不是纯白或者纯黑,说明不是问题一的原因导致的,但是显示的很杂乱,思考会不会是读取的时候

数据排列的方式出了问题?

实践出真知:

问题复现,还是读入一幅图,如下: width = 92(图片的宽),height = 112(图片的高)

然后我分别用reshape() 函数把它112x92的人脸图变换成如下维度:

,第一个用列向量表示,第二个用行向量表示。

然后在reshape回92*112,直观上的理解是人脸会发生一个旋转,因为是112*92变成了92*112,也就是转置了一下,但是最后imshow(),结果如下图:人脸变成了噪声图,失去了空间结构信息,为什么?  我想你大概知道了

原因:举个简单的例子

A = [1,2,3; 4,5,6] 是一个 2x3行的matrix,如下图

row_vector = reshape(A,1,[ ]) 后得到  row_vector = [1,2,3,4,5,6],如下图

 注意:排列方式为把列拉成行排

column_vector = reshape(A,[ ],1)后得到 column_vector 为下图

  注意:排列方式为列排

现在我要把列向量拉成 3*2 的,然后转置,试图恢复原来的人脸图矩阵, img1 = reshape(column_vector,3,2)  得到

   转置后     ,然后原来的“人脸矩阵”是,所以显示的是没有空间结构的噪点。

注意matlab reshape 操作的 列排 属性, 很简单,但也需要小心。

imshow显示图像为纯白或者纯黑或者为杂点(noise)原因分析(下篇)相关推荐

  1. matlab矩阵方块网络着色imshow_matlab中用imshow()显示图像与图像矩阵的数据类型的关系...

    在matlab中,我们常使用imshow()函数来显示图像,而此时的图像矩阵可能经过了某种运算.在matlab中,为了保证精度,经过了运算的图像矩阵I其数据类型会从unit8型变成double型.如果 ...

  2. Live Source Address 2019最新的电视广播包_Arturia MiniLab MkII迷你MIDI键盘2019年换新装:反色纯黑版...

    MiniLab MkII是一款十分紧凑和便携的MIDI控制器,一直引领着迷你MIDI键盘的世界,今天Arturia正式宣布2019年发布MiniLab MkII的特别版本:Deep Black反色纯黑 ...

  3. 黑马python培训_要一张纯黑的图片。纯黑的。

    展开全部 纯黑的图片如下:2113 黑色基本上5261定义为没有任何可见光进入视觉4102范围,与白色1653正相反,白色是所有可见光光谱内的光都同时进入视觉范围内.从宇宙观的角度讲,黑是宇宙的本质, ...

  4. IDEA背景(前后景)设置、自定义背景图片、背景纯黑/白设置

    感兴趣学习JAVA项目打包的伙伴可以点击:JAVA项目打包:JAVA代码-jar包-exe应用程序-合并jre与exe生成安装包(图文详解.资源提供) 先分享一下我自己的IDEA的界面(自我喜好,不喜 ...

  5. matlab imshow显示图像详解

    最近在用octave (类似于matlab的计算软件, 函数和matlab一致) 写程序的时候, 在显示图像和保存图像的时候遇到了一些小问题, 所以简单的总结了一下. 本文用的图像为灰度图像: imr ...

  6. PS纯黑文字不纯黑,模糊?看这里

    PS小技巧 关于PS里字体设为纯黑,但总是朦胧不黑的问题 今天使用PS做了一些文字.发现尽管设为纯黑#000000,但还是发白,边缘模糊,不像是纯黑.后来发现解办法,就是将字体选项的特殊样式设为 &q ...

  7. illustrator插件--常用功能开发--移除非纯黑叠印--js脚本开发--AI插件

      illustrator是矢量编辑软件,画板是绘制处理的重要容器,在印刷方面的一个重要功能就是移除非纯黑叠印,开发一个移除非纯黑叠印功能,以下功能仅用于学习交流,请勿用于非法用途和商业用途,源代码如 ...

  8. android启动画面白屏,Android app启动时黑屏或者白屏的原因及解决办法

    1.产生原因 其实显示黑屏或者白屏实属正常,这是因为还没加载到布局文件,就已经显示了window窗口背景,黑屏白屏就是window窗口背景. 示例: 2.解决办法 通过设置设置Style (1)设置背 ...

  9. 天然黑糖行业调研报告 - 市场现状分析与发展前景预测

    天然黑糖市场的企业竞争态势 该报告涉及的主要国际市场参与者有Sudzucker.Tate & Lyle.Imperial Sugar.Nordic Sugar A/S.C&H Suga ...

  10. Linux电脑睡眠后黑屏打不开,电脑睡眠后黑屏打不开 电脑睡眠后黑屏打不开的原因...

    不知道大家有没有这种困扰,每次当我们暂时不用电脑时,会让电脑进入睡眠状态,以此来节约电量.但有时候当我们想要唤醒电脑的时候,却不能唤醒了,一直是黑屏状态,这是为什么呢?今天就为大家介绍一下电脑睡眠后黑 ...

最新文章

  1. Hadoop + MapReduce 端口自定义配置
  2. shell 中 if then语句中会跟着-ne -ge之类的参数的含义
  3. Hasor JDBC 的难关,嵌套事务处理思路
  4. SpringBoot项目在Eclipse中实现打包发布
  5. 处理数字_7_含NULL值的列的聚合
  6. 贝叶斯软件genle教程_一文读懂蒙特卡罗方法和应用贝叶斯推理
  7. hadoop学习路线2
  8. Java反射机制获取当前类名
  9. 挤房工具发布--支持最新版浩方和VS平台
  10. 烟花php,基于HTML5 canvas的逼真烟花特效插件jquery.fireworks.js
  11. js实现抽饭系统(类似抽检系统)双按钮控制系统
  12. 银联二维码支付java 实现
  13. 医疗病案首页网上直报编码汇总
  14. php apache mpm,RHEL 7 Apache MPM 配置
  15. 京东后台:订单履约系统设计(上)
  16. mysql数据库 with as用法
  17. n1装哪个版本的linux,斐讯t1/N1是装Ubuntu,还是LinuxDeploy,哪个更好?
  18. cpu性能诊断工具turbostat详解
  19. [MATLAB作业二]求解线性代数问题
  20. 【网络】正向代理和反向代理

热门文章

  1. 工作清单软件哪个好用?桌面计划待办清单便签
  2. P5208-[WC2019] I 君的商店【交互,二分】
  3. 关于应用界面引导性的设计模式
  4. Tic Tac Toe简单井字棋
  5. excel单元格数据有效性自定义
  6. 2021年软件测试工具总结——十大新UI功能测试工具
  7. python 图形可视化_Python数据可视化-图形,python,曲线图
  8. [摘录] 暴躁程序员的产生
  9. smbian c++生成sis文件日记
  10. struggle in a slave school =长期更新