回覆列表
  • 1 # 滴逃逃

    你可以試試下面的程式:

    I=imread("myphoto.jpg"); % 假設要處理的影象是myphoto.jpg

    heights=size(I,1); % 影象的高

    widths=size(I,2); % 影象的寬

    m=8; % 假設縱向分成8幅圖

    n=10; % 假設橫向分成10幅圖

    % 考慮到rows和cols不一定能被m和n整除,所以對行數和列數均分後要取整

    rows=round(linspace(0,heights,m+1)); % 各子影象的起始和終止行標

    cols=round(linspace(0,widths,n+1)); % 各子影象的起始和終止列標

    blocks=cell(m,n); % 用一個單元陣列容納各個子影象

    for k1=1:m

    for k2=1:n

    blocks{k1,k2}=I(rows(k1)+1:rows(k1+1),cols(k2)+1:cols(k2+1),:);

    subimage=blocks{k1,k2};

    % 以下是對subimage進行邊緣檢測

    % 加入邊緣檢測的程式碼

    % 以上是對subimage進行邊緣檢測

    blocks{k1,k2}=subimage;

    end

    end

    processed=I; % processed為處理後的影象,用原影象對其初始化

    % 以下為拼接影象

    for k1=1:m

    for k2=1:n

    processed(rows(k1)+1:rows(k1+1),cols(k2)+1:cols(k2+1),:)=blocks{k1,k2};

    end

    end

    figure,imshow(processed)

    % 以上的程式已測試過,對灰度影象和真彩圖像都可以執行。

  • 中秋節和大豐收的關聯?
  • 怎麼調節高強度竟翔的賽鴿?