1. 程式人生 > 其它 >Matlab影象順序裁剪與順序恢復(rg和高光譜均適用)

Matlab影象順序裁剪與順序恢復(rg和高光譜均適用)

技術標籤:matlab筆記matlab計算機視覺

標題 Matlab影象順序裁剪與順序恢復

在跑超解析度演算法過程中,由於視訊記憶體限制可能需要先將圖片裁剪在將其拼接回去,於是自己簡單的寫了兩個程式,供自己使用,上傳到CSDN也是方便自己查閱,如有侵權請聯絡我,我加引用(狗頭保命)。
順序裁剪程式碼

clear,clc;close all;
file_path = 'F:\matlab2020\bin\CCN\';% 影象資料夾路徑
%save_path1= 'F:\matlab2020\MACV3\';
save_path= 'F:\music\';
img_path_list = dir(file_path,'
jpg');%獲取該資料夾中所有jpg格式的影象 img_num = length(img_path_list);%獲取影象總數量 if img_num > 0 for k = 1:img_num image_name = img_path_list(k).name;% 影象名 B = imread(strcat(file_path,image_name)); fprintf('%d %s\n',k,strcat(file_path,image_name)); B = im2double(B); %將影象讀取為double型別 [M, N, C] = size(B); %獲取影象的大小 m = 228; %每張小圖的寬(行) n = 261;%每張小圖的長(列) count = 0; %計數 for i = 1:M/m for j = 1:N/n block = B((
i-1)*m+1 : i*m, (j-1)*n+1 : j*n, :); %生成小圖 %加上下面的程式碼可處理高光譜影象 %block = uint8(B(:,:,1:3) / 4);%處理高光譜影象 %temp = block(:,:,1);%bgr to rgb %block(:,:,1) = block(:,:,3); %block(:,:,3) = temp; %
block = block; if count < 10%後面都是命名的東西了 imwrite(block,[save_path,strcat(image_name( ... 1:end-8),num2str(00),num2str(count+1))
,'
x4','.png']) else imwrite(block,[save_path,strcat(image_name( ... 1:end-9),num2str(0),num2str(count+1)),'x4','.png']) end count = count + 1; %計數加一 end end end end

順序拼接程式碼:

clear
clc
close all
file_path = 'F:\music\';%需要拼圖的影象放在file_path中
save_path = 'F:\matlab2020\';%你要將拼好的圖放在哪裡
list = dir(strcat(file_path,'*.png'));%列出png格式圖片
num = length(list);
if num > 0
    count = 0;
     A = zeros(912*4,1044*4,3);%(M,N,C)取決於原圖的大小生成全黑圖
     for i=1:4
         for j=1:4
              image_name = list(count+1).name;
              B = imread(strcat(file_path,image_name));%讀取圖片
              fprintf('%d %s\n',count,strcat(file_path,image_name));%顯示正在處理的圖片
              B = im2double(B); %將影象讀取為double型別 
              A((i-1)*912+1:i*912,(j-1)*1044+1:j*1044,:)= B;%拼圖過程實際上就是
              %將小圖變成矩陣在儲存到全黑圖模板中
              count = count + 1;
         end
     end
     imwrite(A,[save_path,strcat('ok','x4','.png')]);%命名為okx4.png
end

水平有限,如有錯誤,還請大佬們不靈賜教,謝謝大家!