如何使扭曲的纹理看起来更平滑?
How to make a warped texture look smoother?
我试图在 MATLAB 中将一些纹理变形(使用 warp
)成一个矩形,然后以不同的角度(使用 view
)查看它。问题是纹理以非常糟糕的方式呈现(在输出图像的行中混叠)。
我在 MATLAB 社区上搜索了一下,但似乎以前没有人尝试过。
imgRGB = imread('0.png');
h = warp(imgRGB);
view([-10 60]);
axis off;
saveas (h,"0_w_0.png");
输入如下:
这是意外的输出(sawwy/aliased/not 平滑):
您看到的锯齿现象只是分辨率问题。如果以更高的分辨率导出,结果会更平滑:
我使用的代码是:
im = imread('https://i.imgur.com/ul6JvA1.png');
figure(); imshow(imbinarize(im(:,:,1)));
view([-10 60]);
axis off;
export_fig('E:\F1.png','-png','-m4');
其中 export_fig
是众所周知的第 3rd 方实用程序。
或者,您可以尝试使用一些矢量格式(而不是 .png
)来表示这样的条形码。例如,您的图像可以通过 Inkscape, which would not only facilitate rasterized export at whichever resolution you want, but will also allow you to add various interesting effects like perspective:
转换为 SVG
您的原始图像的一种可能的矢量表示是(另存为 .svg
以查看):
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
id="svg8"
version="1.1"
viewBox="0 0 118.7979125976562 62.97083282470703"
height="62.97083282470703mm"
width="118.7979125976562mm">
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-38.07102599666313,-119.7266511900346)">
<path
style="fill:#000000;stroke-width:0.2645833492"
d="M 38.07102599666313,119.7266511900346 H 38.60019265973527 39.12935932280744 V 182.6974854581405 H 38.60019265973527 38.07102599666313 Z M 40.45227598048774,119.7266511900346 H 41.11373430932791 41.77519263816808 V 182.6974854581405 H 41.11373430932791 40.45227598048774 Z M 44.15644262199269,119.7266511900346 H 45.47935927967302 46.80227593735335 V 182.6974854581405 H 45.47935927967302 44.15644262199269 Z M 49.18352592117798,119.7266511900346 H 49.84498425001813 50.50644257885829 V 182.6974854581405 H 49.84498425001813 49.18352592117798 Z M 54.21060922036324,119.7266511900346 H 54.87206754920345 55.53352587804359 V 182.6974854581405 H 54.87206754920345 54.21060922036324 Z M 57.91477586186818,119.7266511900346 H 58.57623419070835 59.23769251954853 V 182.6974854581405 H 58.57623419070835 57.91477586186818 Z M 60.56060917722884,119.7266511900346 H 61.75123416914117 62.94185916105347 V 182.6974854581405 H 61.75123416914117 60.56060917722884 Z M 65.32310914487804,119.7266511900346 H 66.64602580255835 67.96894246023873 V 182.6974854581405 H 66.64602580255835 65.32310914487804 Z M 69.29185911791904,119.7266511900346 H 71.14394243867153 72.996025759424 V 182.6974854581405 H 71.14394243867153 69.29185911791904 Z M 74.31894241710435,119.7266511900346 H 75.50956740901662 76.70019240092894 V 182.6974854581405 H 75.50956740901662 74.31894241710435 Z M 81.72727570011423,119.7266511900346 H 82.3887340289544 83.05019235779457 V 182.6974854581405 H 82.3887340289544 81.72727570011423 Z M 84.10852568393883,119.7266511900346 H 84.76998401277899 85.43144234161917 V 182.6974854581405 H 84.76998401277899 84.10852568393883 Z M 86.75435899929945,119.7266511900346 H 87.41581732813966 88.07727565697983 V 182.6974854581405 H 87.41581732813966 86.75435899929945 Z M 89.1356089831241,119.7266511900346 H 91.64915063271674 94.16269228230936 V 182.6974854581405 H 91.64915063271674 89.1356089831241 Z M 95.48560893998973,119.7266511900346 H 96.14706726882988 96.80852559767004 V 182.6974854581405 H 96.14706726882988 95.48560893998973 Z M 97.8668589238143,119.7266511900346 H 98.52831725265446 99.18977558149467 V 182.6974854581405 H 98.52831725265446 97.8668589238143 Z M 100.5126922391749,119.7266511900346 H 101.0418589022471 101.5710255653193 V 182.6974854581405 H 101.0418589022471 100.5126922391749 Z M 106.5981088645045,119.7266511900346 H 107.2595671933446 107.9210255221849 V 182.6974854581405 H 107.2595671933446 106.5981088645045 Z M 109.2439421798652,119.7266511900346 H 111.0960255006177 112.9481088213702 V 182.6974854581405 H 111.0960255006177 109.2439421798652 Z M 114.2710254790504,119.7266511900346 H 114.8001921421225 115.3293588051948 V 182.6974854581405 H 114.8001921421225 114.2710254790504 Z M 117.9751921205555,119.7266511900346 H 118.6366504493956 119.2981087782358 V 182.6974854581405 H 118.6366504493956 117.9751921205555 Z M 121.6793587620604,119.7266511900346 H 122.3408170909006 123.0022754197407 V 182.6974854581405 H 122.3408170909006 121.6793587620604 Z M 126.7064420612457,119.7266511900346 H 127.3679003900858 128.0293587189261 V 182.6974854581405 H 127.3679003900858 126.7064420612457 Z M 129.0876920450703,119.7266511900346 H 129.7491503739106 130.4106087027507 V 182.6974854581405 H 129.7491503739106 129.0876920450703 Z M 135.4376920019359,119.7266511900346 H 136.0991503307761 136.7606086596162 V 182.6974854581405 H 136.0991503307761 135.4376920019359 Z M 141.7876919588016,119.7266511900346 H 142.3168586218738 142.8460252849458 V 182.6974854581405 H 142.3168586218738 141.7876919588016 Z M 144.1689419426262,119.7266511900346 H 146.0210252633786 147.8731085841312 V 182.6974854581405 H 146.0210252633786 144.1689419426262 Z M 149.1960252418115,119.7266511900346 H 149.8574835706516 150.5189418994917 V 182.6974854581405 H 149.8574835706516 149.1960252418115 Z M 152.9001918833163,119.7266511900346 H 153.5616502121566 154.2231085409967 V 182.6974854581405 H 153.5616502121566 152.9001918833163 Z M 155.5460251986771,119.7266511900346 H 156.2074835275173 156.8689418563574 V 182.6974854581405 H 156.2074835275173 155.5460251986771 Z"
</g>
</svg>
我试图在 MATLAB 中将一些纹理变形(使用 warp
)成一个矩形,然后以不同的角度(使用 view
)查看它。问题是纹理以非常糟糕的方式呈现(在输出图像的行中混叠)。
我在 MATLAB 社区上搜索了一下,但似乎以前没有人尝试过。
imgRGB = imread('0.png');
h = warp(imgRGB);
view([-10 60]);
axis off;
saveas (h,"0_w_0.png");
输入如下:
这是意外的输出(sawwy/aliased/not 平滑):
您看到的锯齿现象只是分辨率问题。如果以更高的分辨率导出,结果会更平滑:
我使用的代码是:
im = imread('https://i.imgur.com/ul6JvA1.png');
figure(); imshow(imbinarize(im(:,:,1)));
view([-10 60]);
axis off;
export_fig('E:\F1.png','-png','-m4');
其中 export_fig
是众所周知的第 3rd 方实用程序。
或者,您可以尝试使用一些矢量格式(而不是 .png
)来表示这样的条形码。例如,您的图像可以通过 Inkscape, which would not only facilitate rasterized export at whichever resolution you want, but will also allow you to add various interesting effects like perspective:
SVG
您的原始图像的一种可能的矢量表示是(另存为 .svg
以查看):
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
id="svg8"
version="1.1"
viewBox="0 0 118.7979125976562 62.97083282470703"
height="62.97083282470703mm"
width="118.7979125976562mm">
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-38.07102599666313,-119.7266511900346)">
<path
style="fill:#000000;stroke-width:0.2645833492"
d="M 38.07102599666313,119.7266511900346 H 38.60019265973527 39.12935932280744 V 182.6974854581405 H 38.60019265973527 38.07102599666313 Z M 40.45227598048774,119.7266511900346 H 41.11373430932791 41.77519263816808 V 182.6974854581405 H 41.11373430932791 40.45227598048774 Z M 44.15644262199269,119.7266511900346 H 45.47935927967302 46.80227593735335 V 182.6974854581405 H 45.47935927967302 44.15644262199269 Z M 49.18352592117798,119.7266511900346 H 49.84498425001813 50.50644257885829 V 182.6974854581405 H 49.84498425001813 49.18352592117798 Z M 54.21060922036324,119.7266511900346 H 54.87206754920345 55.53352587804359 V 182.6974854581405 H 54.87206754920345 54.21060922036324 Z M 57.91477586186818,119.7266511900346 H 58.57623419070835 59.23769251954853 V 182.6974854581405 H 58.57623419070835 57.91477586186818 Z M 60.56060917722884,119.7266511900346 H 61.75123416914117 62.94185916105347 V 182.6974854581405 H 61.75123416914117 60.56060917722884 Z M 65.32310914487804,119.7266511900346 H 66.64602580255835 67.96894246023873 V 182.6974854581405 H 66.64602580255835 65.32310914487804 Z M 69.29185911791904,119.7266511900346 H 71.14394243867153 72.996025759424 V 182.6974854581405 H 71.14394243867153 69.29185911791904 Z M 74.31894241710435,119.7266511900346 H 75.50956740901662 76.70019240092894 V 182.6974854581405 H 75.50956740901662 74.31894241710435 Z M 81.72727570011423,119.7266511900346 H 82.3887340289544 83.05019235779457 V 182.6974854581405 H 82.3887340289544 81.72727570011423 Z M 84.10852568393883,119.7266511900346 H 84.76998401277899 85.43144234161917 V 182.6974854581405 H 84.76998401277899 84.10852568393883 Z M 86.75435899929945,119.7266511900346 H 87.41581732813966 88.07727565697983 V 182.6974854581405 H 87.41581732813966 86.75435899929945 Z M 89.1356089831241,119.7266511900346 H 91.64915063271674 94.16269228230936 V 182.6974854581405 H 91.64915063271674 89.1356089831241 Z M 95.48560893998973,119.7266511900346 H 96.14706726882988 96.80852559767004 V 182.6974854581405 H 96.14706726882988 95.48560893998973 Z M 97.8668589238143,119.7266511900346 H 98.52831725265446 99.18977558149467 V 182.6974854581405 H 98.52831725265446 97.8668589238143 Z M 100.5126922391749,119.7266511900346 H 101.0418589022471 101.5710255653193 V 182.6974854581405 H 101.0418589022471 100.5126922391749 Z M 106.5981088645045,119.7266511900346 H 107.2595671933446 107.9210255221849 V 182.6974854581405 H 107.2595671933446 106.5981088645045 Z M 109.2439421798652,119.7266511900346 H 111.0960255006177 112.9481088213702 V 182.6974854581405 H 111.0960255006177 109.2439421798652 Z M 114.2710254790504,119.7266511900346 H 114.8001921421225 115.3293588051948 V 182.6974854581405 H 114.8001921421225 114.2710254790504 Z M 117.9751921205555,119.7266511900346 H 118.6366504493956 119.2981087782358 V 182.6974854581405 H 118.6366504493956 117.9751921205555 Z M 121.6793587620604,119.7266511900346 H 122.3408170909006 123.0022754197407 V 182.6974854581405 H 122.3408170909006 121.6793587620604 Z M 126.7064420612457,119.7266511900346 H 127.3679003900858 128.0293587189261 V 182.6974854581405 H 127.3679003900858 126.7064420612457 Z M 129.0876920450703,119.7266511900346 H 129.7491503739106 130.4106087027507 V 182.6974854581405 H 129.7491503739106 129.0876920450703 Z M 135.4376920019359,119.7266511900346 H 136.0991503307761 136.7606086596162 V 182.6974854581405 H 136.0991503307761 135.4376920019359 Z M 141.7876919588016,119.7266511900346 H 142.3168586218738 142.8460252849458 V 182.6974854581405 H 142.3168586218738 141.7876919588016 Z M 144.1689419426262,119.7266511900346 H 146.0210252633786 147.8731085841312 V 182.6974854581405 H 146.0210252633786 144.1689419426262 Z M 149.1960252418115,119.7266511900346 H 149.8574835706516 150.5189418994917 V 182.6974854581405 H 149.8574835706516 149.1960252418115 Z M 152.9001918833163,119.7266511900346 H 153.5616502121566 154.2231085409967 V 182.6974854581405 H 153.5616502121566 152.9001918833163 Z M 155.5460251986771,119.7266511900346 H 156.2074835275173 156.8689418563574 V 182.6974854581405 H 156.2074835275173 155.5460251986771 Z"
</g>
</svg>