MATLAB 黑白视觉错觉
使用黑白图案来制造扭曲、运动或其他引人入胜的视觉效果的现象被称为黑白视觉错觉。这些黑白图案利用我们的眼睛和大脑处理视觉信息的方式,通过制造错觉来误导我们的感知。
黑白视觉错觉使用各种特定样式的黑白图案、形状和线条排列而成。这些排列方式能够制造出运动、扭曲、深度等错觉。
在本文中,我们将学习使用MATLAB编程创建不同类型的黑白视觉错觉。
示例
以下MATLAB代码将生成一个简单的正方形黑白视觉错觉。
% Define the size of illusion box
BoxSize = 400;
% Create a grid of coordinates
[a, b] = meshgrid(1:BoxSize, 1:BoxSize);
% Specify the optical illusion parameters
% Define number of pattern cycles
cycle = 50;
% Define intensity of the illusion
intensity = 150;
% Create a black and white optical illusion pattern
illusion_pattern = cos(2 * pi * a / cycle) + cos(2 * pi * b / cycle);
% Control the intensity of the illusion pattern
illusion_pattern = illusion_pattern * intensity;
% Perform normalization of pattern values to the range [0, 1]
illusion_pattern = (illusion_pattern - min(illusion_pattern(:))) / (max(illusion_pattern(:)) - min(illusion_pattern(:)));
% Display the black and white optical illusion
imshow(illusion_pattern, 'InitialMagnification', 'fit'); title('Black and White Optical Illusion');
输出
解释
在这个MATLAB程序中,我们生成了一个黑白视觉幻象。在上述MATLAB代码中,首先我们定义了一个大小为400px的框并存储在’BoxSize’变量中。之后我们调用’meshgrid’函数创建一个坐标网格。然后,我们指定了视觉幻象的参数’cycle’和’intensity’。其中,参数’cycle’确定了模式中的周期数量,参数’intensity’确定了幻觉的强度或幅度。
之后,我们指定了一个公式来生成黑白视觉幻象的模式,并将结果存储在’illusion_pattern’变量中。然后,我们对模式的值进行归一化处理,以确保其在[0, 1]范围内;
最后,我们使用’imshow’函数来显示生成的黑白视觉幻象。
注意 - 您可以更改幻觉参数’cycle’和’intensity’的值,以生成不同变化的这个视觉幻象。
示例
以下MATLAB代码演示了在图像上创建黑白视觉幻象的过程。
% MATLAB Program to create black and white optical illusion on image
% Read the input image
img = imread('https://www.tutorialspoint.com/matlab/images/matlab-mini-logo.jpg');
% Transform the input image to binary image
img2 = im2bw(img);
% Create a complemented image of the binary image
img3 = imcomplement(img2);
% Display the original, binary, and complemented image
subplot(1, 3, 1); imshow(img); title('Original Image');
subplot(1, 3, 2); imshow(img2); title('Binary Image');
subplot(1, 3, 3); imshow(img3); title('Complemented Image');
输出
说明
在这个MATLAB程序中,我们首先使用’imread’函数读取一个输入图像。然后,我们使用’im2bw’函数将输入图像转换为二进制图像。接下来,我们使用’imcomplement’函数创建二进制图像的补集图像。最后,我们使用’imshow’函数以适当的标题显示原始、二进制和补充图像。
这就是如何在MATLAB中在图像上创建黑白视觉错觉。
结论
总之,在本文中,我们讨论了使用MATLAB编程创建简单的黑白视觉错觉以及对图像进行黑白视觉错觉的方法。上述两个MATLAB程序演示了使用简单代码创建黑白错觉的过程。