MATLAB处理乳腺钼靶图像

问题遇到的现象和发生背景

img

问题相关代码,请勿粘贴截图
clear,clc;
I=dicomread('n.dcm');
I=double(I);
se = strel('octagon',300);%规定膨胀的形态学结构元素 r 是从原点到盘边的距离。
Io = imopen(I,se);%开运算
Tbest=1000;%将开运算的到图二值化作为模板
[m,n]=size(Io);
ind1=find(Io>=Tbest);
ind2=find(Io<Tbest);
Io1=zeros(size(Io));
Io1(ind1)=1;
Io1(ind2)=0;
figure,imshow(Io,[])
title('开运算')

Ie = imerode(I,se);%腐蚀图像
Iobr = imreconstruct(Ie,I);%形态重建
Iobrd = imdilate(Iobr,se);%膨胀图像
Iobrcbr = imreconstruct(imcomplement(Iobrd),imcomplement(Iobr));%形态重建
Iobrcbr = imcomplement(Iobrcbr);%计算图像Iobrcbr的补码并在 Iobrcbr 中返回结果
fgm = imregionalmax(Iobrcbr);%前景标记
se2 = strel('disk',100);
fgm2 = imclose(fgm,se2);
fgm3 = imerode(fgm2,se2);
x2=(double(Io1)).*I;
fgm_=1-double(fgm3);
x3=(fgm_).*x2;
figure,imshow(x3,[]);
[m,n]=size(x3);

x3=255*(x3-min(x3(:)))/(max(x3(:))-min(x3(:)));%映射

K=x3;
[M,N] = size(K);
K2 = zeros(M, N, 3); %初始化三通道

for x = 1 : M
for y = 1 : N
if K(x, y) <= 128 % R
K2(x, y, 1) = 0;
elseif K(x, y) <= 192
K2(x, y, 1) = 4 * K(x, y) - 510;
else
K2(x, y, 1) = 255;
end

  if K(x, y) <= 64                                  % G
      K2(x, y, 2) =  4 * K(x, y);
  elseif K(x, y) <= 192
      K2(x, y, 2) = 255;
  else
      K2(x, y, 2) = 1022 - 4 * K(x, y);
  end
   
  if K(x, y) <= 64                                 % B
      K2(x, y, 3) = 255;
  elseif K(x, y) <= 128
      K2(x, y, 3) = 510 - 4 * K(x, y);
  else
      K2(x, y, 3) = 0;
  end
end
end

imshow(uint8(K2));

运行结果及报错内容

已经做完切割和伪彩色,不知道怎么框选正方形感兴趣区

我的解答思路和尝试过的方法

试过边缘检测试过直接找感兴趣区,但是都不行

我想要达到的结果 想要在分割好的图片里面框选一个最大的正方形作为感兴趣区,然后只对这个方形区域添加伪彩色

img

img

你好,可以把完整代码粘贴一下吗,不然重新打代码浪费时间,本末倒置