[已解决] 请教:如何用matlab绘制棋盘格标定板,并按照规格打印出来

[复制链接]
atpalain 发表于 2015-10-1 15:07:12
具体要求:在A4纸上打印一个棋盘格,大小为200 x 200mm,其中每个格子的边长为20mm。
A4纸大小:21 x 29.7 cm。

自己简单做了一段程序如下:
n = 200;
I = ones(n);
I = mat2cell(I,20*ones(1,10),20*ones(1,10));
for i = 1:5
    for  j = 1:5
        I{(i-1)*2+1,2*j} = zeros(20,20);
        I{2*i,(j-1)*2+1} = zeros(20,20);
    end
end
I = cell2mat(I);
figure;
imshow(I);
运行结果:

问题: 打印的时候棋盘格的大小不是我想要的,所以请教各位,有没有如何用matlab打印出指定实际尺寸的棋盘格?谢谢。

棋盘格

棋盘格

最佳答案


lijun2007zhu 发表于 2015-10-1 21:20:32
clear
clc
n = 200/25*300;
t=20/25*300;%1英寸=25.4mm,由于n必须是整数,所以这里25.4改为25估算,实际打印效果会稍微大那个1mm左右
I = ones(n);
I = mat2cell(I,t*ones(1,10),t*ones(1,10));
for i = 1:5
    for  j = 1:5
        I{(i-1)*2+1,2*j} = zeros(t,t);
        I{2*i,(j-1)*2+1} = zeros(t,t);
    end
end
I = cell2mat(I);
figure;
imshow(I);
imwrite(I,'a.bmp');%保存出来,这样像素就不会变了
然后拿a.bmp去打印吧,实测效果很好!
下面附上实际我打印出来的图吧,哈,忙活了20分钟,不知道有没有能帮到你?
回复此楼

4 条回复


lijun2007zhu 发表于 2015-10-1 21:20:32
clear
clc
n = 200/25*300;
t=20/25*300;%1英寸=25.4mm,由于n必须是整数,所以这里25.4改为25估算,实际打印效果会稍微大那个1mm左右
I = ones(n);
I = mat2cell(I,t*ones(1,10),t*ones(1,10));
for i = 1:5
    for  j = 1:5
        I{(i-1)*2+1,2*j} = zeros(t,t);
        I{2*i,(j-1)*2+1} = zeros(t,t);
    end
end
I = cell2mat(I);
figure;
imshow(I);
imwrite(I,'a.bmp');%保存出来,这样像素就不会变了
然后拿a.bmp去打印吧,实测效果很好!
下面附上实际我打印出来的图吧,哈,忙活了20分钟,不知道有没有能帮到你?

实际打印效果

实际打印效果
回复此楼

atpalain 发表于 2015-10-2 09:03:30
lijun2007zhu 发表于 2015-10-1 21:20
clear
clc
n = 200/25*300;

我的显示器分辨率是96像素/英寸 是不是把程序里的*300都改成*96就可以了  可能精度不是我想要的 但是非常感谢你的热心帮助 :)

lijun2007zhu 发表于 2015-10-2 11:28:22
atpalain 发表于 2015-10-2 09:03
我的显示器分辨率是96像素/英寸 是不是把程序里的*300都改成*96就可以了  可能精度不是我想要的 但是非常 ...

具体数据更改你可以通过打印出来的效果来判断,一般情况下都是300的,具体的精度没办法达到百分百20mm的尺寸,我表示很遗憾。

atpalain 发表于 2015-10-2 11:31:23
lijun2007zhu 发表于 2015-10-2 11:28
具体数据更改你可以通过打印出来的效果来判断,一般情况下都是300的,具体的精度没办法达到百分百20mm的 ...

没关系的 总之非常感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表