Matlab:如何从一幅图像中随机地取10%的点
比如说我有一幅lena图像(大小为256*256),想随机取10%的点。处理后得到的图像与原图像大小相同,10%的点为有效点,有效点的下标仍是原下标,除有效点以外的点的灰...
比如说我有一幅lena图像(大小为256*256),想随机取10%的点。处理后得到的图像与原图像大小相同,10%的点为有效点,有效点的下标仍是原下标,除有效点以外的点的灰度值为0
展开
3个回答
展开全部
先获得图像像素点总数, 其10%为样点数, 然后随机产生坐标点取样. 以下代码以彩色图为例
clear all;close all;
I = imread('lena_small.jpg');
[m,n,~]=size(I);
%采样数据总数
amount = fix(m*n*0.1);
sampledata = zeros(amount,3);
%随机生成采样点的坐标
for j=1:amount
x = randi(m,1,1);
y = randi(n,1,1);
%取得的数据
sampledata(j,:) = I(x,y,:);
%在图上标注为白色
I(x,y,:)=[255 255 255];
end
%显示采样点
imshow(I);
展开全部
图像也是一个矩阵,根据行、列的大小(比如10*10=100),产生一个10%的随机数矩阵(1*10=10),值的范围从1到100,然后把对应的点都取出来就好了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询