Matlab针对图片处理的随机二维坐标生成
今天遇到一个问题,就是想要把图片处理成散点的方式,用opencv什么的不懂,也不是生成3D点云,就是简单的散点,就想通过Matlab的随机数的方式来生成,结果找了半天也没有合适的代码。后来想了想,觉着自己很蠢,可以不局限于图片,可以先根据图片的像素点来生成多个随机数,而后将随机数用到图片里面,来去掉图片中的数值,也就是颜色。
代码如下:
a=randperm(17028,12000);
I=imread('2.png');
%imshow(I);
gray=double(rgb2gray(I))
[w,h]=size(gray);
gray(a)=0;
imshow(gray);
R=I(:,:,1); %red
G=I(:,:,2); %green
B=I(:,:,3); %blue
R(a)=0;
G(a)=0;
B(a)=0;
%imshow(R);
for i=1:w
for j=1:h
blue(i,j,1) = R(i,j);
blue(i,j,2) = G(i,j);
blue(i,j,3) = B(i,j);
end
end
imshow(blue,'border','tight','initialMagnification','fit');
效果是这样的:
就先这样吧,肯定还有更好的方法,希望大神指教