声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 6497|回复: 12

[绘图技巧] 如何在给定图片上 画图

[复制链接]
发表于 2008-12-29 15:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
假设我现在有一张哈尔滨的图片,我想以这样图片为底,在这张图片上用matlab标注上几个坐标点,不知道如何实现。

搜索了半天没找到,哪位知道而且有时间的朋友请告诉下,谢过。



好久没来了不知道还有认识我的么?
回复
分享到:

使用道具 举报

发表于 2008-12-29 16:54 | 显示全部楼层
没资料试! 拿demo试
load clown; clims = [10 60]; imagesc(X,clims); colormap(gray)
hold on; plot(150,80,'ro')

评分

1

查看全部评分

 楼主| 发表于 2008-12-30 15:20 | 显示全部楼层
首先感谢楼上热心的朋友。

是这样的,我有一张地形图,想在上面标注指定的几个点的位置,不知道在matlab中如何实现。
台湾.jpg
 楼主| 发表于 2008-12-30 15:21 | 显示全部楼层
假设左下角为坐标原点,我想在这张图上标上 (1,1), (2,2)这2个点,请问如何读图呢?谢过
发表于 2008-12-30 22:02 | 显示全部楼层

回复 地板 后知后觉 的帖子

不清楚楼主的意思!
aa=imread('Taiwan.jpg'); image(aa); hold on; plot(280,240,'ro','MarkerSize',20)
发表于 2008-12-30 23:55 | 显示全部楼层

回复 楼主 后知后觉 的帖子

前辈回来啦,欢迎欢迎!
 楼主| 发表于 2009-1-1 11:01 | 显示全部楼层
不好意思还有两个问题

1.读图之后纵坐标的顺序为什么是反的呢?(应该从下到上是递增的)

2.能否将图左下角的坐标设为指定值?比如将图的左下角坐标显示为(0,0)呢?


望不吝赐教。再次谢过
未命名.jpg
发表于 2009-1-1 12:08 | 显示全部楼层

回复 7楼 后知后觉 的帖子

doc image
得到如下的信息,不过不知怎么用
Description

image creates an image graphics object by interpreting each element in a matrix as an index into the figure's colormap or directly as RGB values, depending on the data specified.

The image function has two forms:

    *

      A high-level function that calls newplot to determine where to draw the graphics objects and sets the following axes properties:
          o

            XLim and YLim to enclose the image
          o

            Layer to top to place the image in front of the tick marks and grid lines
          o

            YDir to reverse
          o

            View to [0 90]
发表于 2009-1-1 16:52 | 显示全部楼层

回复 7楼 后知后觉 的帖子

1.图像绘图的内定y坐标好像都是反向的, 原因我猜应该是为配合图像文件数据格式吧!
2.不知道楼主是否仅是想方便标注? 若是的话, 可以使用axis函数适宜的转换坐标! 若确定是要显示, 可能就比较麻烦的!
早上还在拜读楼主之前的一些大帖, 真格地非常精彩! 真高兴可以回馈楼主!
发表于 2009-1-19 15:31 | 显示全部楼层
1.纵坐标的顺序,用axis xy应该可以改回来。
2.我也在找寻好方法,希望高人能具体的给指点一下
发表于 2009-1-19 18:16 | 显示全部楼层
要满足楼主的要求,需要对图像数据做一些处理,其实matlab默认的显示图像方式应该是常用的(记得学数字图像处理如此讲的)。发现直接用axis xy虽然能变回原点在左下角,但显示的图像不正常,看图1.对原始图像数据做一下处理就ok了。

  1. clear
  2. clc
  3. I=imread('nn.jpg');
  4. I(:,:,1)=fliplr(I(:,:,1));
  5. I(:,:,2)=fliplr(I(:,:,2));
  6. I(:,:,3)=fliplr(I(:,:,3));
  7. I = imrotate(I,180);
  8. iptsetpref('ImshowAxesVisible','on')
  9. imshow(I)
  10. hold on
  11. plot(5,5,'ro','MarkerSize',10)
  12. plot(30,30,'rs','MarkerSize',15)
  13. axis xy
  14. hold off
复制代码

图1

图1

图2

图2

评分

1

查看全部评分

发表于 2009-5-6 21:03 | 显示全部楼层
11楼的,我真的是很需要你的这个程序,十分感谢你。
发表于 2012-9-22 14:43 | 显示全部楼层
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-6 09:46 , Processed in 0.087476 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表