MATLAB: Please help me, is there anyone that can eliminate the function imcrop in this program

encryptionImage Processing Toolboximcrop

global masuk_enkripsi I a b c d
global gambar_baru
global nilaipadding hasil_enkripsi_red hasil_enkripsi_green hasil_enkripsi_blue
global zz
prompt = {'Enter Your key'};
dlg_title = 'Key Input';
num_lines = 1;
def = {''};
answer = inputdlg(prompt,dlg_title,num_lines,def);
key_ascii=double(answer{1,1});
key_ascii_biner=de2bi(key_ascii,'left-msb',8);
key_ascii_biner_seri=reshape(key_ascii_biner',1,8*length(key_ascii));
if length(key_ascii_biner_seri)==128
key_ascii_biner_baru=key_ascii_biner_seri;
elseif length(key_ascii_biner_seri)<128
key_ascii_biner_baru=[key_ascii_biner_seri zeros(1,128-length(key_ascii_biner_seri))];
elseif length(key_ascii_biner_seri)>128
key_ascii_biner_baru=[key_ascii_biner_seri(1,1:128)];
end
[xx yy zz]= size(I);
if zz == 3
[x,y,A,rect] = imcrop(I);
a=rect(1,1);
b=rect(1,2);
if a<0
a=1;
end
if b<0
b=1;
end
[d c l]=size(A);
masuk_enkripsi=double(I(b:b+d-1,a:a+c-1,:));
tic
masuk_enkripsi_red=masuk_enkripsi(:,:,1);
masuk_enkripsi_green=masuk_enkripsi(:,:,2);
masuk_enkripsi_blue=masuk_enkripsi(:,:,3);
[brs_masuk_enkripsi klm_masuk_enkripsi]=size(masuk_enkripsi_red);
masuk_enkripsi_seri_red=reshape(masuk_enkripsi_red',1,brs_masuk_enkripsi*klm_masuk_enkripsi);
masuk_enkripsi_seri_green=reshape(masuk_enkripsi_green',1,brs_masuk_enkripsi*klm_masuk_enkripsi);
masuk_enkripsi_seri_blue=reshape(masuk_enkripsi_blue',1,brs_masuk_enkripsi*klm_masuk_enkripsi);
banyakzeropad=16-(mod(length(masuk_enkripsi_seri_red),16));
if banyakzeropad==16
banyakzeropad=0;
end
[kodebinerserial_part_red]=seri2part(masuk_enkripsi_seri_red,16);
[kodebinerserial_part_green]=seri2part(masuk_enkripsi_seri_green,16);
[kodebinerserial_part_blue]=seri2part(masuk_enkripsi_seri_blue,16);
inputplain_aes_red=kodebinerserial_part_red;
inputplain_aes_green=kodebinerserial_part_green;
inputplain_aes_blue=kodebinerserial_part_blue;
kunci_aes=key_ascii_biner_baru;
[brs_ipt klm_ipt]=size(inputplain_aes_red);
h=waitbar(0,'PLEASE WAIT...0%');
for i=1:brs_ipt
waitbar(i/brs_ipt,h,['Encryption LOADING ......' num2str(round(i/brs_ipt*100)), '%'])
hasil_enkripsi_red(i,:)=enkripsi_aes(inputplain_aes_red(i,:), kunci_aes);
hasil_enkripsi_green(i,:)=enkripsi_aes(inputplain_aes_green(i,:), kunci_aes);
hasil_enkripsi_blue(i,:)=enkripsi_aes(inputplain_aes_blue(i,:), kunci_aes);
end
nilaipadding_enkripsi_red=hasil_enkripsi_red(brs_ipt,klm_ipt-banyakzeropad+1:klm_ipt);
nilaipadding_enkripsi_green=hasil_enkripsi_green(brs_ipt,klm_ipt-banyakzeropad+1:klm_ipt);
nilaipadding_enkripsi_blue=hasil_enkripsi_blue(brs_ipt,klm_ipt-banyakzeropad+1:klm_ipt);
nilaipadding=[nilaipadding_enkripsi_red;nilaipadding_enkripsi_green;nilaipadding_enkripsi_blue];
close(h)
[brs_opt klm_opt]=size(hasil_enkripsi_green)
hasil_enkripsi_red_seri=reshape(hasil_enkripsi_red',1,brs_opt*klm_opt);
hasil_enkripsi_green_seri=reshape(hasil_enkripsi_green',1,brs_opt*klm_opt);
hasil_enkripsi_blue_seri=reshape(hasil_enkripsi_blue',1,brs_opt*klm_opt);
hasil_enkripsi_red_cut=hasil_enkripsi_red_seri(1,1:length(masuk_enkripsi_seri_red));
hasil_enkripsi_green_cut=hasil_enkripsi_green_seri(1,1:length(masuk_enkripsi_seri_green));
hasil_enkripsi_blue_cut=hasil_enkripsi_blue_seri(1,1:length(masuk_enkripsi_seri_blue));
hasil_enkripsi_red_kembali=reshape(hasil_enkripsi_red_cut,klm_masuk_enkripsi,brs_masuk_enkripsi )';
hasil_enkripsi_green_kembali=reshape(hasil_enkripsi_green_cut,klm_masuk_enkripsi,brs_masuk_enkripsi )';
hasil_enkripsi_blue_kembali=reshape(hasil_enkripsi_blue_cut,klm_masuk_enkripsi,brs_masuk_enkripsi )';
gambar_baru=I;
gambar_baru(b:b+d-1,a:a+c-1,1)=hasil_enkripsi_red_kembali;
gambar_baru(b:b+d-1,a:a+c-1,2)=hasil_enkripsi_green_kembali;
gambar_baru(b:b+d-1,a:a+c-1,3)=hasil_enkripsi_blue_kembali;
axes(handles.axes2)
imshow(uint8(gambar_baru));
toc;
waktu=toc;
set(handles.edit7,'string',brs_masuk_enkripsi*klm_masuk_enkripsi*24/8/10^6)
set(handles.edit11,'string',datestr(now))
set(handles.edit8,'string',brs_masuk_enkripsi)
set(handles.edit9,'string',klm_masuk_enkripsi)
set(handles.edit12,'string',waktu)
elseif zz==1
[x,y,A,rect] = imcrop(I);
a=rect(1,1);
b=rect(1,2);
if a<0
a=1;
end
if b<0
b=1;
end
[d c l]=size(A);
masuk_enkripsi=double(I(b:b+d-1,a:a+c-1));
tic
masuk_enkripsi_white=masuk_enkripsi(:,:);
[brs_masuk_enkripsi klm_masuk_enkripsi]=size(masuk_enkripsi_white);
masuk_enkripsi_seri_white=reshape(masuk_enkripsi_white',1,brs_masuk_enkripsi*klm_masuk_enkripsi);
banyakzeropad=16-(mod(length(masuk_enkripsi_seri_white),16));
if banyakzeropad==16
banyakzeropad=0;
end
[kodebinerserial_part_white]=seri2part(masuk_enkripsi_seri_white,16);
inputplain_aes_white=kodebinerserial_part_white;
kunci_aes=key_ascii_biner_baru;
[brs_ipt klm_ipt]=size(inputplain_aes_white)
h=waitbar(0,'PLEASE WAIT...0%');
for i=1:brs_ipt
waitbar(i/brs_ipt,h,['Encryption LOADING ......' num2str(round(i/brs_ipt*100)), '%'])
hasil_enkripsi_white(i,:)=enkripsi_aes(inputplain_aes_white(i,:), kunci_aes);
end
nilaipadding_enkripsi_white=hasil_enkripsi_white(brs_ipt,klm_ipt-banyakzeropad+1:klm_ipt);
nilaipadding=[nilaipadding_enkripsi_white];
close(h)
[brs_opt klm_opt]=size(hasil_enkripsi_white);
hasil_enkripsi_white_seri=reshape(hasil_enkripsi_white',1,brs_opt*klm_opt);
hasil_enkripsi_white_cut=hasil_enkripsi_white_seri(1,1:length(masuk_enkripsi_seri_white));
hasil_enkripsi_white_kembali=reshape(hasil_enkripsi_white_cut,klm_masuk_enkripsi,brs_masuk_enkripsi )';
gambar_baru=I;
gambar_baru(b:b+d-1,a:a+c-1,1)=hasil_enkripsi_white_kembali;
axes(handles.axes2)
imshow(uint8(gambar_baru));
toc;
waktu=toc;
set(handles.edit7,'string',brs_masuk_enkripsi*klm_masuk_enkripsi*24/8/10^6)
set(handles.edit11,'string',datestr(now))
set(handles.edit8,'string',brs_masuk_enkripsi)
set(handles.edit9,'string',klm_masuk_enkripsi)
set(handles.edit12,'string',waktu)
end

Best Answer

It looks like it's being called in a way that allows the user to set the box edge locations. If you eliminate it, you'd have to use fixed locations that are known in advance. Is that what you want to do? If so, what are those rows and columns?