这几天我在搞用contourlet变换来做图像融合。

期间,遇到了一个问题,就是将得到的多层矩阵用contourlet反变换后,得到的不是一个正规的图片矩阵,就是每个像素点灰度值大小都在0~255之间,这个矩阵像素点的灰度值有的大于了255,有的小于了0。当直接用imshow()函数来显示这个矩阵的时候,在figure窗口中画出来的完全不是一张正常图片,而是白白的一片,底部有些黑色的东西。
我查看了contourlet工具包里的各种文档说明,参考工具包里的demo程序,使用imagesc(I,[0,255])语句可以将这个矩阵显示为一张图片了,但是颜色很诡异,有点像美图秀秀加的效果,而且图像的大小也被压缩。后来查阅资料,发现imagesc()这个函数,本来就是将图片压缩后再显示的。之后添加colormap(gray);axis image;语句可以将图片显示为正常的灰度图像,图像的大小也恢复了本来面目。
那么现在问题来了,怎样将这张图片保存,然后将其用到我的其他测试函数中,来比较图像融合的效果呢?
在网上一直都找到解决方法,不过现在我已经解决这个问题啦!
其实使用imshow(I,[255])就可以将这个矩阵以正常的图片显示,而且不会像imagesc()函数有压缩图片这个副作用。同样还是上面的问题,但是怎样将figure窗口里的图片保存呢?
我参看了一下imshow()的实际函数过程,其实就是将灰度值大于255或小于0的像素直接分别修改成了255和0.那么我自己写了一个函数,对最初的矩阵进行了处理,通过遍历矩阵中的每一个像素点,将这个矩阵中灰度值大于255或小于0的像素的值直接分别修改成了255和0,得到一个新的矩阵,就是我想要的图像。
但是我之后直接用imshow(I)函数显示这个矩阵,又是一片大白。
其实还有把这个矩阵用uint8(I)变换一下,最后得到的矩阵,再用imshow(I)直接显示,就一切正常啦!
然后再用imwrite()语句保存一下这个矩阵,就得到可以用于下一步操作的图片啦!
脱水版:
step1:用imagesc(img,[l,h])显示一张图片,想保存。
step2:写一个遍历矩阵中所有像素的函数,将灰度值小于l的修改为0,将灰度值大于h的修改为255。得到矩阵img
step3:imgfinal = unit8(img).
step4:imwrite(imafinal,'final.jpg','jpg')

转载于:https://www.cnblogs.com/wangzirui/p/4465017.html

【原创】关于MATLAB中imagesc函数图像保存的问题相关推荐

  1. matlab中imagesc函数基本学习

    matlab中imagesc函数 含义 使用缩放颜色显示图像 语法 imagesc© imagesc(x,y,C) imagesc('CData',C) imagesc('XData',x,'YDat ...

  2. matlab保存之前的函数,MATLAB中定义函数并保存后怎么运行啊?

    你这个2113要求有点奇怪.5261tif格式的数据就4102应该是整型的1653,你为什么一专定要把浮点数写到tif文件呢属?一个浮点数占8个字节,而一个uint8只占一个字节,从图像数据来说,rg ...

  3. Matlab中绘制函数图像的技巧

    Matlab拥有非常powerful的绘图功能,如果能够好好利用可以使得工作量大大得以简化,本文主要介绍如何用其来绘制2D的函数图形,也涉及其中的许多技巧. 1.基本绘图从赋值和plot()函数开始 ...

  4. matlab中axes显示,【原创】MATLAB中axes函数全功能解析

    axes ★★★★★ 功能 创建坐标系图形对象 语法 axes axes('PropertyName',propertyvalue,...) axes(h) h = axes(...) 描述 axes ...

  5. MATLAB中im2bw函数-将图像转换为二值图像

    matlab中DIP工具箱函数im2bw使用阈值(threshold)变换法把灰度图像(grayscale image)转换成二值图像.所谓二值图像, 一般意义上是指只有纯黑(0).纯白(255)两种 ...

  6. matlab 中imagesc的用法

    imagesc(A) 将矩阵A中的元素数值按大小转化为不同颜色,并在坐标轴对应位置处以这种颜色染色 imagesc(x,y,A) x,y决定坐标范围,x,y应是两个二维向量,即x=[x1 x2],y= ...

  7. matlab imagesc参数设置,[转载]matlab 中imagesc的用法

    imagesc(A) 将矩阵A中的元素数值按大小转化为不同颜色,并在坐标轴对应位置处以这种颜色染色 imagesc(x,y,A) x,y决定坐标范围,x,y应是两个二维向量,即x=[x1 x2],y= ...

  8. matlab imagesc 坐标,[转载]matlab 中imagesc的用法

    imagesc(A) 将矩阵A中的元素数值按大小转化为不同颜色,并在坐标轴对应位置处以这种颜色染色 imagesc(x,y,A) x,y决定坐标范围,x,y应是两个二维向量,即x=[x1 x2],y= ...

  9. matlab中dmodce函数使用报错,matlab中randi函数

    ④矩形脉冲信号 矩形脉冲信号在 MATLAB 中用 rectpuls 函数表示,其调用形式为 ft...(1,n); >>xn3=randi(n,1,n); >>subplot ...

最新文章

  1. 服务器负载均衡(1)
  2. 返还网 PK 返利网*2
  3. Loj#116-[模板]有源汇有上下界最大流
  4. java struts2教程_Struts2教程
  5. 蓝光手游大师极速版 V1.0.82
  6. Failure [INSTALL_FAILED_INVALID_APK]
  7. 手机卡顿?可能是你没关闭这两个选项(小米手机为例)
  8. 对于addEventListener()事件的看法
  9. HDU 4833 Best Financing DP
  10. 2021年大数据发展十大趋势:抓准一个,就能掌握先机!
  11. for example: not eligible for auto-proxying问题排查
  12. java项目导入jre不识别_Eclipse中的Java项目:无法解析类型java.lang.Object。 从所需的.class文件间接引用它...
  13. 【已解决】rgss202e.dll与电脑不兼容怎么办?
  14. [运维] proxmox ve 与 vSphere 对比
  15. 英特尔oneAPI简介
  16. 动态规划 || 威威猫系列故事——篮球梦 (类似背包)
  17. 非项目活动的时间怎么跟踪?
  18. JAVA 面向对象与面向过程区别
  19. GridView 编辑,更新,删除 等操作
  20. (一)VR播放器项目介绍和到目前为止的工作进展

热门文章

  1. by group 累加中文字段_EF 求和 GroupBy多个字段
  2. 几个实例让你轻松理解正则表达式
  3. Char RNN原理介绍以及文本生成实践
  4. 机器学习之特征工程-特征选择
  5. mysql集群参数讲解_Mysql集群讲解(一)
  6. jni调用java类_JNI之C++调用Java类 —— java.lang.String
  7. dxf转nc代码软件_cad怎么转pdf?cad文件转换pdf文件的方法步骤
  8. C中不安全的函数以解决办法汇总
  9. Java基础---异常---turow和throws
  10. 多线程十 Timer