请帮助Matlab初学者挑战 我需要创建一个几何对象很少的图像(圆圈, 椭圆)然后应用一些投影变换 我的问题是我无法理解如何在图像上“绘制”
图像是AFAIU,一般定义为[X; Y; 3]矩阵, 作为SCIRCLE1的函数可以计算/返回点的集合 代表圆圈,但问题是点不是离散的, 坐标是实数而不是像素
如何重新计算scircle输出在图像中有效 坐标系?即我如何“像素化”呢?
感谢您的关注,我真的错过了一些基本的概念 非常感谢您的帮助
约翰
答案 0 :(得分:0)
以下是我在Matlab新闻组收到的答案 BOTTOM LINE-在Matlab中没有内置方式
====================================== “getframe”可用于合并轴,即使它更常用于创建电影帧。
MATLAB在这个领域非常薄弱。有一些原始的 绘制到叠加层的函数(如矩形(),如果你 想绘制一个圆,如果你想绘制一条直线()(但是没有) 我所知道的真实方式是直接进入底层图像。所以 你必须使用“技巧”,如getframe,然后应用逻辑 操作。因为我认为什么时候你必须要小心 它为您提供了它可能的叠加的栅格化版本 屏幕上图像的大小,而不是真正的原始矩阵大小 基础图像(我必须重新检查)。
完整主题:http://www.mathworks.com.au/matlabcentral/newsreader/view_thread/261232
答案 1 :(得分:0)
我发现这个例子可以让你轻松地将简单的几何对象放到图片上。
阅读输入图像。
I = imread('cameraman.tif');
将矩形尺寸定义为[x y width height]
。
rectangle = int32([10 10 30 30]);
绘制矩形并显示结果。
J = step(shapeInserter, I, rectangle);
imshow(J);
请参阅this link
顺便说一下..答案 2 :(得分:0)
计算机视觉系统工具箱中的insertShape功能是您所需要的。它允许您将矩形,圆形和多边形绘制到图像中。
还有insertText
,insertMarker
和insertObjectAnnotation
。