如何截取matlab绘制的图像

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何截取matlab绘制的图像相关的知识,希望对你有一定的参考价值。

绘制的图像可以保存,但只能用Matlab自身打开,ACDSee都打不开。怎样才能把图像提取出来呢,要能变成JPG格式的普通图片那就更好了,随时可以编辑、打印。

figure窗口里面就有保存的项目,在保存时你可以在保存的格式里面选择jpg格式就可以了。

请参照我提供的图片说明。

参考技术A 图片窗口选项file ->save as 选项里可以选保存格式的啊
另外,你也可以在 edit -> copy figure里直接复制图像嘛~本回答被提问者采纳
参考技术B 利用saveas 函数可以保存,另外使用print函数也可以,具体的用法,朋友自己help一下吧!

给你一个例子,应该可以解决!

>> x=linspace(0,2*pi,100);
>> plot(x,sin(x))
>> x=linspace(0,2*pi,100);
>> h=figure

h =

2

>> plot(x,sin(x))
>> saveas(h,'1.jpg');

在MATLAB路径下会有一个名字为'1.jpg'的图像文件!

当利用subplot画多幅图时,也可以实现!

>> x=linspace(0,2*pi,100);
h=figure

h =

1

>> subplot(121)
>> plot(x,sin(x))
>> subplot(122)
>> plot(x,cos(x))
>> saveas(h,'1.jpg');

参考资料:http://hi.baidu.com/2008zhenghui

如何在opencv中使用matlab c++库绘制点

【中文标题】如何在opencv中使用matlab c++库绘制点【英文标题】:How to plot points using matlab c++ library in opencv 【发布时间】:2012-09-30 22:17:41 【问题描述】:

我正在使用opencv的matlab库来使用matlab图像并对其执行HoughCircles算法。

我想动态创建 matlab 图像而不是 imread-ing 它们。

使用该图像,我想绘制一个我收集的 x,y 坐标数组。

我可以通过说“声明”图像

Mat img

但这就是我所得到的。我找不到将点绘制到其中的函数。

如果有人有任何见解,我将不胜感激!

【问题讨论】:

对了,opencv中的ml模块不代表matlab,而是代表机器学习 感谢您的更正。我想我应该少做一些假设-_- 【参考方案1】:

检查cv::Mat docs 并查看它提供的几个构造函数:

要从二维数组初始化 cv::Mat,您可以这样做:

float data[2][2] =  1,3,5,7,9, 2,4,6,8,10 ; 
cv::Mat img = cv::Mat(2, 5, CV_32FC1, &data);

或者,如果您需要单独访问像素:

Accessing all pixels in cv::Mat(1 个频道) Cycle through pixels with opencv(3 个频道) OpenCV get pixel information from Mat image(3 个频道) Get data from Mat / cv::Mat in OpenCV(3 个频道) Find pixel color out of cv::Mat on specific position(1 和 3 频道)(这个网站与 *** 非常相似,不是吗?)

您可能也有兴趣阅读:

What's the shortest way to plot points with opencv and c++?

【讨论】:

我想我的脑袋会因为试图在一天内学习所有这些而爆炸。但只是为了澄清:这一行: cv::Mat img = cv::Mat(2, 5, CV_32FC1, &data);表示单个 32f 值的 2x5 图像,加载有上述数据。我试图了解该数据数组如何适合该图像。 data 中的值在图像矩阵中的什么位置? 图像的存储在data字段(这是一个指针)中,可以通过img.data访问 我想说明我的问题。我有一个 std::vector<:point2f> 坐标。我还有一个 Mat img = cv::Mat::zeros(1280,720, CV_8UC1);我试图弄清楚如何轻松地将向量中的坐标初始化为 img 中的 1。我的第一个想法是迭代并执行 .at() =,但我认为有一种更简单的方法 这可能是最有效的方法。如果有其他解决方案,它们将涉及调用 CV 方法,这些方法将执行您手动执行的操作,而且它们将有向堆栈添加函数调用的开销。 太棒了。感谢您的帮助,非常感谢!

以上是关于如何截取matlab绘制的图像的主要内容,如果未能解决你的问题,请参考以下文章

用matlab截取图像的一部分?

如何截取某一窗口内的图像 VC

MATLAB如何绘制三维三次隐函数图像?

怎样用matlab从一张图片中截取一小张图片

MATLAB如何绘制三维隐函数图形

如何在 MATLAB 中为基于内容的图像检索绘制 Precision-Recall 图?