image processing <<problem with gui>>

2 views (last 30 days)
pasxalis papakalas
pasxalis papakalas on 6 May 2015
Answered: Omega on 6 Feb 2025
hi friends,
im try to make a projcet and i have problem with it
i want to know how in the same window select the image to be processed, showing it, and to choose the filter and displays the result next to the original image.Because i have the same code for every image!
clc;
clear all;
warning off;
chos=0;
possibility=14;
while chos~=possibility,
chos=menu('COORDINATE LOGIC FILTERS','SELECT IM1', 'SELECT IM2','IM1 CAND IM2','IM1 CXOR IM2','IM1 COR IM2','IM1 CNOT & IM2 CNOT','IM1 Edge detector CAND','IM2 Edge detector CAND','IM1 Edge detector CXOR','IM2 Edge detector CXOR','IM1 Noise Removal','IM2 Noise Removal','IM1 Magnification','IM2 Magnification','exit');
if chos==1
[img path]=uigetfile('*.png','SELECT IM1');
im1=imread(img);im1=uint8(imresize(im1,[512 512]));
end
if chos==2
[fname pname]=uigetfile('*.png','SELECT IM2');
im2=imread(fname);im2=uint8(imresize(im2,[512 512]));
end
%CAND
if chos==3
im1cand2=bitand(im1,im2);
imwrite(im1cand2, 'cand.jpg');
end
%CXOR
if chos==4
im1cxor2=bitxor(im1,im2);
imwrite(im1cxor2, 'cxor.jpg');
end
%COR
if chos==5
im1cor2=bitor(im1,im2);
imwrite(im1cor2, 'cor.jpg');
end
%CNOT
if chos==6
im1cnot=bitcmp(im1);
im2cnot=bitcmp(im2);
imwrite(im1cnot, 'cnot1.jpg');
imwrite(im2cnot, 'cnot2.jpg');
end
%IM1 Edge detector CAND
if chos==7
for i=2:1:511
for j=2:1:511
f11(i,j) = bitand(im1(i,j),bitcmp(bitand(im1(i-1,j),bitand(im1(i+1,j),bitand(im1(i,j+1),im1(i,j-1))))));
end
end
imwrite(f11,'test11.jpg');
end
%IM2 Edge detector CAND
if chos==8
for i=2:1:511
for j=2:1:511
f12(i,j) = bitand(im2(i,j),bitcmp(bitand(im2(i-1,j),bitand(im2(i+1,j),bitand(im2(i,j+1),im2(i,j-1))))));
end
end
imwrite(f12,'test12.jpg');
end
%IM1 Edge detector CXOR
if chos==9
for i=2:1:511
for j=2:1:511
f21(i,j) = bitor(bitxor(im1(i,j-1),im1(i,j+1)),bitxor(im1(i+1,j),im1(i-1,j)));
end
end
imwrite(f21,'test21.jpg');
end
%IM2 Edge detector CXOR
if chos==10
for i=2:1:511
for j=2:1:511
f22(i,j) = bitor(bitxor(im2(i,j-1),im2(i,j+1)),bitxor(im2(i+1,j),im2(i-1,j)));
end
end
imwrite(f22,'test22.jpg');
end
%IM1 Noise removal
if chos==11
for i=2:1:511
for j=2:1:511
f311(i,j) = bitor((bitand(im1(i,j),bitand(im1(i + 1, j),im1(i, j + 1)))),(bitand(im1(i,j),bitand(im1(i , j+ 1),im1(i, j - 1)))));
f321(i,j) = bitor((bitand(im1(i,j),bitand(im1(i + 1, j),im1(i-1, j)))),(bitand(im1(i,j),bitand(im1(i , j- 1),im1(i+1, j)))));
f331(i,j) = bitor((bitand(im1(i,j-1),bitand(im1(i + 1, j),im1(i, j + 1)))),(bitand(im1(i,j-1),bitand(im1(i , j+ 1),im1(i-1, j)))));
f341(i,j) = bitor((bitand(im1(i+1,j),bitand(im1(i , j+ 1),im1(i-1, j)))),(bitand(im1(i,j-1),bitand(im1(i-1, j),im1(i+1, j)))));
f351(i,j) = bitor(f341(i,j),(bitand(im1(i,j-1),bitand(im1(i-1,j),im1(i,j)))));
f411(i,j) = bitor(f351(i,j),f331(i,j));
f421(i,j) = bitor(f411(i,j),f321(i,j));
f431(i,j) = bitor(f421(i,j),f311(i,j));
end
end
imwrite(f431,'test31.jpg');
end
%IM2 Noise removal
if chos==12
for i=2:1:511
for j=2:1:511
f312(i,j) = bitor((bitand(im2(i,j),bitand(im2(i + 1, j),im2(i, j + 1)))),(bitand(im2(i,j),bitand(im2(i , j+ 1),im2(i, j - 1)))));
f322(i,j) = bitor((bitand(im2(i,j),bitand(im2(i + 1, j),im2(i-1, j)))),(bitand(im2(i,j),bitand(im2(i , j- 1),im2(i+1, j)))));
f332(i,j) = bitor((bitand(im2(i,j-1),bitand(im2(i + 1, j),im2(i, j + 1)))),(bitand(im2(i,j-1),bitand(im2(i , j+ 1),im2(i-1, j)))));
f342(i,j) = bitor((bitand(im2(i+1,j),bitand(im2(i , j+ 1),im2(i-1, j)))),(bitand(im2(i,j-1),bitand(im2(i-1, j),im2(i+1, j)))));
f352(i,j) = bitor(f342(i,j),(bitand(im2(i,j-1),bitand(im2(i-1,j),im2(i,j)))));
f412(i,j) = bitor(f352(i,j),f332(i,j));
f422(i,j) = bitor(f412(i,j),f322(i,j));
f432(i,j) = bitor(f422(i,j),f312(i,j));
end
end
imwrite(f432,'test32.jpg');
end
%im2 magnification
if chos==13
for i=3:1:510
for j=3:1:510
f51(i,j)=bitor(im1(i, j),bitor(im1(i, j + 1), bitor( im1(i, j + 2),bitor(im1(i-1, j),bitor(im1(i + 1, j + 1),bitor(im1(i + 1, j + 2),bitor(im1(i- 2, j),bitor(im1(i + 2, j + 1), im1(i + 2, j + 2)))))))));
end
end
imwrite(f51,'test41.jpg');
end
%IM2 magnification
if chos==14
for i=3:1:510
for j=3:1:510
f52(i,j)=bitor(im2(i, j),bitor(im2(i, j + 1), bitor( im2(i, j + 2),bitor(im2(i-1, j),bitor(im2(i + 1, j + 1),bitor(im2(i + 1, j + 2),bitor(im2(i- 2, j),bitor(im2(i + 2, j + 1), im2(i + 2, j + 2)))))))));
end
end
imwrite(f52,'test42.jpg');
end
end

Answers (1)

Omega
Omega on 6 Feb 2025
Hi,
I understand that you are looking for a mechanism to display the original image alongside the result image after applying a filter.
You can do so by making use of the "subplot". You can plot multiple figures into a single plot using the "subplot" method.
For more information and details regarding the usage of "subplot," you can refer to the following MathWorks documentation link:

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!