智能车制作

 找回密码
 注册

扫一扫,访问微社区

123
返回列表 发新帖
打印 上一主题 下一主题

图像矫正后,边缘锯齿严重,有什么办法吗?

[复制链接]

0

主题

31

帖子

0

精华

高级会员

Rank: 4

积分
771
威望
383
贡献
236
兑换币
258
注册时间
2015-5-28
在线时间
76 小时
毕业学校
武汉纺织大学
21#
发表于 2016-5-6 16:26:23 | 只看该作者
哈哈某人用菊花 发表于 2016-5-6 09:24
GRAY1=imread('2.png');//读取图片,好像是RGB格式吧
GRAY=rgb2gray(GRAY1);//应该是转化成灰度值吧,
...

这是我按照你的那种方法做的,怎么得到的图像是这样的呀,你是怎么做的,能不能把matlab程序给我看看呀


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

16

主题

132

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1389
威望
677
贡献
392
兑换币
425
注册时间
2015-7-31
在线时间
160 小时
毕业学校
还没毕业
22#
 楼主| 发表于 2016-5-7 09:38:08 | 只看该作者
cuteboy 发表于 2016-5-6 16:26
这是我按照你的那种方法做的,怎么得到的图像是这样的呀,你是怎么做的,能不能把matlab程序给我看看呀
...

我程序太乱,还得花很多时间解释,就不发了。你这个明显是图像有问题,你慢慢来啊先能显示正确的图像再说,你可以单步调试,看那些矩阵(也就是二维数组)里面的数据是不是跟你的灰度值一一对应。如果不对应,可能是RGB格式还没有转化到灰度值。还有一个问题就是可能你的行列数值没设置对。还有可能就是你的图像被matlab缩小了,尝试放大下图像。问题是可以自己调试出来了。不要动不动就要代码,除非万不得已。
回复 支持 反对

使用道具 举报

0

主题

31

帖子

0

精华

高级会员

Rank: 4

积分
771
威望
383
贡献
236
兑换币
258
注册时间
2015-5-28
在线时间
76 小时
毕业学校
武汉纺织大学
23#
发表于 2016-5-7 11:00:21 | 只看该作者
哈哈某人用菊花 发表于 2016-5-7 09:38
我程序太乱,还得花很多时间解释,就不发了。你这个明显是图像有问题,你慢慢来啊先能显示正确的图像再说 ...

没关系,我自己慢慢看,我已经弄了一个多星期了,实在是没头绪了,这马上要比赛了,我想换这个方案看能不能提一下速的,拜托,么么哒
回复 支持 反对

使用道具 举报

16

主题

132

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1389
威望
677
贡献
392
兑换币
425
注册时间
2015-7-31
在线时间
160 小时
毕业学校
还没毕业
24#
 楼主| 发表于 2016-5-7 12:24:45 | 只看该作者
cuteboy 发表于 2016-5-7 11:00
没关系,我自己慢慢看,我已经弄了一个多星期了,实在是没头绪了,这马上要比赛了,我想换这个方案看能不 ...

GRAY1=imread('2.png');
GRAY=rgb2gray(GRAY1);
X1=imresize(GRAY,[row col]);
X_Ori=int16(imresize(GRAY,[row col]));
CAV=255;
for  i=1:row%y
    for j=1:col%x
        if X_Ori(i,j)<CAV;
          CAV=X_Ori(i,j);
        end
     end
end
CAV=100+CAV;
for  i=1:row%y
    for j=1:col%x
        if X_Ori(i,j)<CAV;
          X_Ori(i,j)=0;
        else  X_Ori(i,j)=255;
        end
     end
end
a=2;b=3.5;c=-512;d=-0;e=0.09;f=-0;g=12.0;h=-277.18;
for  i=1:row%y
    for j=1:col%x
        j2=(a*j+b*i+c)/(d*j+e*i+1);
        i2=(f*j+g*i+h)/(d*j+e*i+1);
       intj2=fix(j2);
       if intj2<=0||intj2>col2
           continue;
       end
       if intj2>col2
           intj2=col2
       end
       inti2=fix(i2);
       if inti2<=0||inti2>row2
            continue;
        end
        if inti2>row2
            inti2=row2;
        end
         X_Tran(inti2,intj2)=X_Bor(i,j);
    end
end
   subplot(2,2,1);
imshow(uint8(X_Ori));
   subplot(2,2,2);
imshow(uint8(X_Tran));

核心算法

回复 支持 反对

使用道具 举报

0

主题

31

帖子

0

精华

高级会员

Rank: 4

积分
771
威望
383
贡献
236
兑换币
258
注册时间
2015-5-28
在线时间
76 小时
毕业学校
武汉纺织大学
25#
发表于 2016-5-7 12:46:38 | 只看该作者
哈哈某人用菊花 发表于 2016-5-7 12:24
GRAY1=imread('2.png');
GRAY=rgb2gray(GRAY1);
X1=imresize(GRAY,[row col]);

谢了哈
回复 支持 反对

使用道具 举报

0

主题

31

帖子

0

精华

高级会员

Rank: 4

积分
771
威望
383
贡献
236
兑换币
258
注册时间
2015-5-28
在线时间
76 小时
毕业学校
武汉纺织大学
26#
发表于 2016-5-7 12:47:45 | 只看该作者
回复 支持 反对

使用道具 举报

0

主题

31

帖子

0

精华

高级会员

Rank: 4

积分
771
威望
383
贡献
236
兑换币
258
注册时间
2015-5-28
在线时间
76 小时
毕业学校
武汉纺织大学
27#
发表于 2016-5-7 14:35:46 | 只看该作者
哈哈某人用菊花 发表于 2016-5-7 12:24
GRAY1=imread('2.png');
GRAY=rgb2gray(GRAY1);
X1=imresize(GRAY,[row col]);

CAV=255;这是什么?[row col]式摄像头的分辨率吗?

a=2;b=3.5;c=-512;d=-0;e=0.09;f=-0;g=12.0;h=-277.18;这个不是摄像头标定得到的吗?你是怎么得到的?
row2,col2是什么?
X_Bor(i,j);这个函数是干什么的,函数原型在哪?
:(:(
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-10-2 10:28 , Processed in 0.043665 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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