image processing <<problem with gui>>
Show older comments
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
on 6 Feb 2025
0 votes
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:
Categories
Find more on Image Arithmetic in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!