MATLAB 中的黑白视错觉
通过使用黑白图案来创建扭曲、运动或任何其他类型的迷人视觉效果的光学或视觉现象称为黑白视错觉。这些黑白图案利用我们的眼睛和大脑处理视觉信息的方式,创造一种幻觉来误导我们的感知。
黑白视错觉使用以特定样式排列的各种黑白图案、形状和线条。这些排列方式可以创建运动、扭曲、深度等幻觉。
在本文中,我们将学习使用 MATLAB 编程创建不同类型的黑白视错觉。
示例
以下 MATLAB 代码将生成一个简单的方形盒子形状的黑白视觉错觉。
% 定义错觉框的大小 BoxSize = 400; % 创建坐标网格 [a, b] = meshgrid(1:BoxSize, 1:BoxSize); % 指定视觉错觉参数 % 定义图案循环数 cycle = 50; % 定义错觉强度 intensity = 150; % 创建黑白视觉错觉图案 illusion_pattern = cos(2 * pi * a / cycle) + cos(2 * pi * b / cycle); % 控制错觉图案的强度 illusion_pattern = fantasy_pattern * strength; % 将模式值归一化到范围 [0, 1] illusion_pattern = (illusion_pattern - min(illusion_pattern(:))) / (max(illusion_pattern(:)) - min(illusion_pattern(:))); % 显示黑白视错觉 imshow(illusion_pattern, 'InitialMagnification', 'fit'); title('黑白视错觉');
输出
解释
在此 MATLAB 程序中,我们生成了黑白视错觉。在上面的 MATLAB 代码中,我们首先定义了一个大小为 400px 的框并将其存储在"BoxSize"变量中。之后,我们调用"meshgrid"函数来创建图案的坐标网格。然后,我们指定视错觉的参数"cycle"和"intensity"。其中,参数"cycle"决定图案中的循环数,参数"intensity"决定错觉的强度或幅度。
之后,我们指定一个公式来生成黑白视错觉图案,并将结果存储在"illusion_pattern"变量中。然后,我们对模式的值进行归一化,以确保它们在 [0, 1] 范围内;
最后,我们使用"imshow"函数显示生成的黑白视错觉。
注意 – 您可以更改错觉参数"cycle"和"intensity"的值,以生成此视错觉的不同变化。
示例
以下 MATLAB 代码演示了如何在图像上创建黑白视错觉。
% MATLAB 程序在图像上创建黑白视错觉 % 读取输入图像 img = imread('https://www.tutorialspoint.com/matlab/images/matlab-mini-logo.jpg'); % 将输入图像转换为二值图像 img2 = im2bw(img); % 创建二值图像的补图 img3 = imcomplement(img2); % 显示原始图像、二值图像和补图 subplot(1, 3, 1); imshow(img); title('原始图像'); subplot(1, 3, 2); imshow(img2); title('二值图像'); subplot(1, 3, 3); imshow(img3); title('补图');
输出
说明
在此 MATLAB 程序中,我们首先使用"imread"函数读取输入图像。然后,我们使用"im2bw"函数将输入图像转换为二进制图像。接下来,我们使用"imcomplement"函数创建二进制图像的补充图像。最后,我们使用"imshow"函数以适当的标题显示原始、二进制和补充图像。
这就是我们在 MATLAB 中在图像上创建黑白视错觉的方法。
结论
总之,在本文中,我们讨论了使用 MATLAB 编程创建原始黑白视错觉和在图像上创建黑白视错觉。上述两个 MATLAB 程序演示了如何使用简单的代码创建黑白错觉。