matla里面图像经过平移后为什么出来的结果是黑的?
刚刚接触数字图像处理这门课,自己照着书上编写小程序,但是发现出来的结果直接是一张黑图,只是图的形状变化了,请哪位高手帮忙看看,谢谢哦。。。%图像平移
G=ones(1220,1640);
for i=1:1200
for j=1600
G(i+20,j+40)=A(i,j);
end
end
figure(4)
imshow(G)
这个A就是我读到里面的一张图片,但是出来的结果是一张黑图,就是大小变了
回复 楼主 五味瓶 的帖子
平移?你的算法有问题
你的图是?
平移应该不用i=1:1200吧
回复 沙发 xiuhuwang 的帖子
我是想着本来的图式1200*1600的,我要把它垂直和水平的平移量为20和40,所以直接就那样了,呵呵。。。不太懂这个回复 板凳 五味瓶 的帖子
我也是不懂,但是明显你的思路是错的你可以检查一下你转移后的矩阵
明显是让“像素”的值发生了变化,而不是位置发生了变化
你可以试着横向平移一下,把列向量都平移几个单位。 现编了一个:
I=imread('lena.jpg');
I=rgb2gray(I);
I1=circshift(I,);
subplot(121)
imshow(I)
subplot(122)
imshow(I1)
回复 地板 xiuhuwang 的帖子
好的,我找本书再看看:@)回复 5楼 friendchj 的帖子
谢谢哦,我再看看我的:@)回复 5楼 friendchj 的帖子
顶~~我觉得lz对图像处理还没有理解好
回复 7楼 五味瓶 的帖子
应该是灰度图否则矩阵就不好处理了 我要再说说我前面问的那个问题,我的思路没有错,我要实现的就是把像素平移,其实是很简单的一个问题,但是我偶的数据类型搞错了,我的A是Unit8的,但是G是double的,所以错了,还是很谢谢大家的帮忙,我又学到了一些知识:victory:
我想把我的图贴上来,大家看看,但是一直显示我的图太大了,我不知道怎么弄,呵呵
页:
[1]