随机生成均匀分布的黑底白格图像,白格大小不一 matlab
时间: 2024-09-19 07:12:08 浏览: 35
在MATLAB中,你可以使用`im2uint8`函数结合随机矩阵来创建一个黑底白格的随机分布图像,其中白格的大小不一。这里是一个简单的步骤:
```matlab
% 设置图像的尺寸
image_size = [500, 500]; % 可以自定义
% 创建全黑背景
black_image = zeros(image_size);
% 设置白格的比例和最小、最大尺寸
white_grids_ratio = 0.2; % 白色格子占总像素的比例
min_grid_size = 10; % 最小白色格子的边长
max_grid_size = floor(min(image_size) / 2); % 最大白色格子的边长
% 计算总的白色格子数
num_grids = round(image_size(:) * white_grids_ratio);
% 随机选择格子的位置和大小
grid_positions = rand(num_grids, 2) * (image_size - ones(1, 2)) + ones(1, 2);
grid_sizes = round(randi([min_grid_size, max_grid_size], num_grids, 1));
% 画出白格
for i = 1:num_grids
% 确保网格不会超出边界
pos_x = min(max(grid_positions(i, 1)), image_size(1));
pos_y = min(max(grid_positions(i, 2)), image_size(2));
% 根据格子大小填充白色
black_image(pos_x:(pos_x+grid_sizes(i)-1), pos_y:(pos_y+grid_sizes(i)-1)) = 255;
end
% 转换为无损的8位图像
white_grid_image = im2uint8(black_image);
% 显示结果
imshow(white_grid_image);
```
运行此代码后,将显示一个随机分布的黑白格子图像,其中白格的大小不固定。
阅读全文