matlab 图像矩阵条件提取方法

B分量均在R0: 已知一个图像矩阵A和某一点的颜色(R0.20倍之间的像素提取到矩阵B中用matlab如何实现,G0,B0) 怎样把A中 R,G,G0,B0的 0.80~1

第1个回答  2019-11-14
  A
%原矩阵
  B=A(1:10,1:10);
%第一行到第十行第一行到第十列的子矩阵
  C=A(10:100,20:300);
%第十行到第一百行第二十列到第三百列的子矩阵
  f=imread('car_2.bmp');
%
读取图像;
  [x,y]=size(f);
%
x,y为图像的行数和列数;
  m=20;n=30;
%
手动定义子图像的行数和列数;
  s=zeros(m,n);
%
s表示子矩阵;
  t=zeros(10,10);
%
t为阈值矩阵;
  rx=1:m:x;
  cy=1:n:y;
%
rx和cy是子图像左上角的坐标;
  rowhigh=rx+m-1;
%
rowhigh和colhigh是子图像历遍的终点,即为右下角的坐标;
  colhigh=cy+n-1;
  for
r=1:10
  for
c=1:10
  s=f(rx(r):rowhigh(r),cy(c):colhigh(c));
  t(r,c)=graythresh(s);
%
用Otsu算法求每幅子图像的最佳阈值,保存在阈值矩阵t中;
  end
  I=imresize(t,[x,y]);
%
插值后的阈值矩阵I与原图像的行数和列数相等;
  I=reshape(I,(size(f)));%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  H=f>I;
%
将阈值矩阵与图像矩阵比较,将亮的部分提取出来;
  g=H*255;
  figure(1);
  imshow(f);title('原始图像')
%
显示原图像;
  figure(2);
  imshow(g);title('处理结果')
%
显示处理后的结果;
相似回答