声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1337|回复: 7

[编程技巧] 求助:画刷程序!

[复制链接]
发表于 2006-10-19 14:30 | 显示全部楼层 |阅读模式

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

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

x

本人已实现读入图像,并显示出来了,请大侠指教,matlab是否能够实现一个画刷程序,其功能和windows中画图板中的刷子类似,在图像上利用这个画刷选择一个区域。
能的话怎么做啊?不胜感激


====================eight===============
更多细节请参阅以下帖子:

[原创]交互式选取图象感兴趣部分(矩形窗或任意区域)
======================================


[ 本帖最后由 eight 于 2008-4-18 17:33 编辑 ]
回复
分享到:

使用道具 举报

发表于 2006-10-19 14:44 | 显示全部楼层
原帖由 cash_jh 于 2006-10-19 14:30 发表

本人已实现读入图像,并显示出来了,请大侠指教,matlab是否能够实现一个画刷程序,其功能和windows中画图板中的刷子类似,在图像上利用这个画刷选择一个区域。
能的话怎么做啊?不胜感激



like this?

求助:如何确定图片中某一区域的位置 http://forum.vibunion.com/forum/ ... Dtype%26typeid%3D24
 楼主| 发表于 2006-10-19 15:11 | 显示全部楼层
原帖由 eight 于 2006-10-19 14:44 发表



like this?

求助:如何确定图片中某一区域的位置 http://forum.vibunion.com/forum/ ... Dtype%26typeid%3D24



我看过这个帖子,也实现了一下,但是效果是选定的区域是正正方方的,如果我想要随意弯曲连贯的选择区域,也可以实现么?如果可以,怎么实现呢?谢谢
发表于 2006-10-19 15:25 | 显示全部楼层
原帖由 cash_jh 于 2006-10-19 15:11 发表



我看过这个帖子,也实现了一下,但是效果是选定的区域是正正方方的,如果我想要随意弯曲连贯的选择区域,也可以实现么?如果可以,怎么实现呢?谢谢



“随意弯曲连贯”这个比较难吧?用 ginput 吧,不过需要自己写区域的函数
发表于 2006-10-19 15:37 | 显示全部楼层
转贴BG的,不知道是不是这样,没试过:
  1. clear all
  2. gr=imread('3603.jpg');
  3. fn=gr;
  4. figure
  5. image(gr)

  6.     [a,b]=ginput;
  7.     a=round(a);
  8.     b=round(b);
  9.     va=zeros(length(a)+1,1);
  10.     vb=zeros(length(a)+1,1);
  11.     va(1:length(a))=a;
  12.     va(length(va))=a(1);
  13.     vb(1:length(b))=b;
  14.     vb(length(vb))=b(1);   
  15. for i=1:3
  16.     i
  17.     g=double(fn(:,:,i));
  18.     [m,n]=size(g)
  19.     for x=1:m;
  20.         for y=1:n;
  21.             in=INPOLYGON(y, x, va, vb);
  22.             if in~=1
  23.                 g(x,y)=255;
  24.             end
  25.         end
  26.     end
  27.     fn(:,:,i)=g(:,:);
  28.     clear g
  29. end
  30. figure
  31. image(uint8(fn))
  32. axis image
  33. axis off
  34. imwrite(uint8(fn),'3603cut.jpeg')
复制代码

评分

1

查看全部评分

发表于 2006-10-19 15:46 | 显示全部楼层
原帖由 bainhome 于 2006-10-19 15:37 发表
转贴BG的,不知道是不是这样,没试过:
clear all
gr=imread('3603.jpg');
fn=gr;
figure
image(gr)

    =ginput;
    a=round(a);
    b=round(b);
    va=zeros(length(a)+1,1);
    vb=zeros(leng ...


不错,不过速度上有待改进,三层循环,怕怕
发表于 2006-10-19 20:01 | 显示全部楼层
很8错,不过怎么运行起来画线的效果是断断续续的,不连续?
发表于 2006-10-19 21:39 | 显示全部楼层
赫赫,看错了!:)
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-12 16:06 , Processed in 0.078036 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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