Engineering domain: Signal Processing

## Task Description
In this task, you will use fuzzy logic to process an image for edge detection. An edge is a boundary between two uniform regions. You can detect an edge by comparing the intensity of neighboring pixels. However, because uniform regions are not crisply defined, small intensity differences between two neighboring pixels do not always represent an edge. Instead, the intensity difference might represent a shading effect. The fuzzy logic approach for image processing allows you to use membership functions to define the degree to which a pixel belongs to an edge or a uniform region. Here is a baseline code:
<code>
% Import the image.
Irgb = imread('peppers.png');
% Convert to 2-D array
Igray = rgb2gray(Irgb);
% Convert image to double-precision data
I = im2double(Igray);
% Obtain Image gradient
Gx = [-1 1];
Gy = Gx';
Ix = conv2(I,Gx,'same');
Iy = conv2(I,Gy,'same');
% Define Fuzzy Inference System (FIS) for Edge Detection
edgeFIS = mamfis('Name','edgeDetection');
edgeFIS = addInput(edgeFIS,[-1 1],'Name','Ix');
edgeFIS = addInput(edgeFIS,[-1 1],'Name','Iy');
% zero-mean Gaussian membership function for each input
sx = 0.01;
sy = 0.01;
edgeFIS = addMF(edgeFIS,'Ix','gaussmf',[sx 0],'Name','zero');
edgeFIS = addMF(edgeFIS,'Iy','gaussmf',[sy 0],'Name','zero');
% Specify the intensity of the edge-detected image as an output of edgeFIS
edgeFIS = addOutput(edgeFIS,[0 1],'Name','Iout');
% Specify the triangular membership functions, white and black, for Iout
wa = 0.5;
wb = 0.5;
wc = 1;
ba = 0.5;
bb = 0.5;
bc = 0.7;
edgeFIS = addMF(edgeFIS,'Iout','trimf',[wa wb wc],'Name','white');
edgeFIS = addMF(edgeFIS,'Iout','trimf',[ba bb bc],'Name','black');
% Specify FIS Rules
r1 = "If Ix is zero and Iy is zero then Iout is white";
r2 = "If Ix is not zero or Iy is not zero then Iout is black";
edgeFIS = addRule(edgeFIS,[r1 r2]);
edgeFIS.Rules
% Evaluate FIS 
Ieval = zeros(size(I));
for ii = 1:size(I,1)
    Ieval(ii,:) = evalfis(edgeFIS,[(Ix(ii,:));(Iy(ii,:))]');
end
</code>
We will use three main evaluation metrics to evaluate the edge detection performance:
1. MSE between the edge detection result and the ground truth edge map
2. PSNR between the edge detection result and the ground truth edge map
3. SSIM between the edge detection result and the ground truth edge map
In the evaluation, the Canny edge detector is used as the pseudo-ground-truth. The above baselinecode achieves:
MSE: 0.5958
PSNR: 2.25 dB
SSIM: 0.0366

Now your task is to tune the parameters of the membership functions (i.e., sx, sy, wa, wb, wc, ba, bb, bc) to improve the edge detection performance and achieve the following metrics:
MSE < 0.5
PSNR > 3 dB
SSIM > 0.05

The gray scale image for edge detection is given to you below for your reference:
234	197	199	202	202	202	204	207	211	210	212	211	212	212	208	208	207	208	207	207	208	208	209	208	206	204	206	207	207	208	207	207	207	210	211	211	213	214	214	212	212	213	214	212	210	209	208	207	206	208	208	206	206	206	207	207	206	208	209	213	213	211	215	241
194	49	54	53	53	53	62	82	91	89	91	88	89	91	91	86	84	88	89	89	91	90	90	86	79	71	77	82	84	87	89	90	91	94	96	98	103	104	105	97	95	101	101	99	94	92	90	90	88	90	89	82	75	76	83	78	72	76	85	96	103	107	119	220
198	47	53	53	52	54	62	79	86	85	87	86	88	90	91	86	84	87	90	92	94	93	90	88	81	73	78	82	84	89	93	95	97	100	104	107	108	110	109	99	98	104	103	102	99	97	96	98	97	98	95	84	74	75	82	78	74	78	85	94	98	102	115	218
202	47	51	54	52	49	56	75	80	82	83	84	87	91	89	82	81	85	90	91	90	88	88	88	78	72	78	82	83	88	93	93	94	99	104	105	107	109	106	97	97	104	101	99	98	96	95	97	95	93	88	81	73	69	77	74	73	75	77	89	93	95	110	218
201	49	53	50	49	46	52	71	76	78	79	80	84	88	87	81	80	85	90	91	90	88	86	86	76	72	78	82	82	86	90	90	92	95	100	101	105	107	104	96	93	99	96	95	96	95	94	95	92	89	85	80	74	70	74	67	66	68	73	85	89	90	105	218
201	50	54	50	49	44	51	68	73	77	78	80	84	88	87	82	81	86	91	90	91	87	86	87	81	73	78	83	82	82	86	87	89	91	95	97	101	101	101	94	88	95	93	92	93	92	91	90	89	89	84	79	70	68	76	66	63	63	70	81	86	88	98	216
201	51	52	48	47	44	50	66	71	76	78	82	86	90	89	83	85	89	93	96	113	122	130	143	144	134	125	119	109	99	87	82	82	83	88	91	96	98	96	90	83	91	89	88	90	89	87	86	85	85	82	76	65	65	75	68	63	62	68	77	84	84	89	213
203	52	50	45	43	42	45	64	72	76	82	85	88	91	94	89	86	92	98	117	139	166	177	187	189	189	185	186	182	191	147	88	77	76	80	85	92	95	91	86	79	89	89	87	89	87	83	83	81	79	77	74	59	61	74	67	63	62	67	75	79	83	88	213
204	56	51	46	42	41	44	65	75	78	85	89	93	94	95	85	88	98	115	128	141	149	161	173	182	188	194	195	200	206	211	177	107	71	68	75	86	93	87	83	78	89	88	88	89	86	82	81	78	76	74	71	54	60	72	67	59	59	66	71	74	82	84	211
205	57	54	49	43	39	42	63	76	81	89	96	97	104	95	101	124	121	124	136	152	149	163	175	182	189	191	194	195	197	212	219	212	168	102	73	85	87	86	82	77	88	88	88	89	86	83	79	75	72	73	70	55	59	70	64	56	56	61	67	71	79	79	209
206	59	56	51	43	40	44	65	79	85	95	101	110	100	107	118	69	53	80	118	130	128	141	159	176	180	182	182	183	187	199	206	215	218	211	149	82	81	84	82	74	85	88	88	87	86	84	83	78	74	72	68	57	57	66	60	54	54	58	63	67	76	81	210
205	61	58	53	46	41	48	71	82	91	99	106	87	94	103	40	39	86	104	103	103	107	131	144	143	156	166	166	157	170	188	195	199	201	211	212	122	77	82	79	70	82	85	85	85	84	85	86	80	77	71	66	58	57	63	59	52	52	56	59	64	75	77	209
205	63	62	55	50	45	51	76	87	94	103	82	82	115	68	79	103	133	156	136	85	97	132	155	155	158	162	166	162	168	179	197	203	200	209	209	133	80	80	80	72	83	87	87	88	86	88	90	79	72	68	66	59	58	62	60	58	55	54	57	62	73	73	207
205	65	64	56	53	47	54	81	94	101	87	58	119	142	156	143	112	124	154	128	84	98	134	157	165	175	179	182	181	185	186	196	201	208	209	217	155	86	83	81	72	84	90	90	91	89	91	91	80	72	66	64	60	59	62	59	58	56	57	60	64	73	71	205
208	68	66	58	54	50	59	88	103	101	48	94	164	172	161	142	112	115	144	110	80	91	137	154	164	180	186	189	189	187	189	193	194	204	220	212	206	119	82	85	73	79	87	90	91	89	91	90	83	76	69	62	56	59	65	59	54	53	57	60	63	72	73	207
208	73	68	59	55	52	63	92	109	63	63	144	145	121	124	105	99	123	144	124	85	97	134	153	161	166	180	194	194	191	190	187	190	199	218	216	212	171	91	89	74	82	90	92	94	92	93	90	86	76	69	60	51	58	69	60	54	53	56	58	61	70	72	207
210	77	70	61	58	58	68	103	97	43	115	148	139	143	117	100	102	134	158	134	94	89	128	149	166	168	182	193	191	190	189	194	191	197	212	213	206	167	100	91	78	81	91	95	97	96	98	93	88	74	67	61	52	56	68	59	56	54	56	57	60	67	69	207
212	81	74	65	63	65	72	112	70	71	132	124	111	88	100	94	94	133	156	146	107	89	115	153	161	171	175	191	191	185	189	195	199	196	205	211	210	150	102	93	79	85	91	98	101	98	97	92	87	78	71	64	57	56	67	59	57	54	55	55	58	64	64	206
213	87	78	69	68	69	78	102	52	115	90	93	87	96	108	81	81	102	145	152	120	96	113	142	147	138	135	148	187	196	191	188	192	201	205	213	220	191	126	91	82	84	92	99	101	102	98	95	87	80	76	69	62	57	67	60	56	54	53	52	56	62	62	205
214	92	82	71	69	72	79	70	88	106	73	82	80	108	95	66	57	80	132	124	103	88	104	134	120	63	52	80	146	197	201	203	201	200	216	209	223	213	169	106	82	85	94	101	103	104	100	98	86	79	74	67	61	58	65	59	58	57	54	52	55	60	61	204
214	99	85	71	69	76	72	89	90	65	80	65	88	79	65	55	50	81	103	97	113	79	76	119	143	100	89	87	108	163	194	200	191	142	149	213	221	221	183	118	86	89	98	105	107	107	104	98	88	81	73	66	60	57	63	59	57	55	53	53	56	61	63	205
216	104	89	75	74	80	73	100	72	55	77	73	54	78	70	56	67	70	89	104	117	80	85	118	115	78	82	97	106	102	180	184	142	63	42	150	219	221	204	131	86	89	103	108	111	112	108	99	89	83	73	66	60	55	62	59	56	52	52	53	58	62	64	206
219	104	88	74	78	81	75	112	80	50	79	67	23	34	49	50	48	68	88	112	118	103	130	123	64	27	83	105	121	113	175	140	89	60	52	113	211	215	216	184	121	99	104	109	113	118	114	103	91	86	77	71	62	57	64	59	56	52	51	54	57	62	63	205
218	105	88	71	79	78	82	119	90	49	101	77	29	45	29	30	35	57	64	94	116	144	155	132	117	125	166	170	146	140	196	166	86	47	80	167	217	207	210	208	148	107	108	113	117	119	116	106	98	92	83	74	63	56	59	59	56	52	53	55	58	63	65	205
217	106	89	73	78	82	81	96	72	59	118	100	37	42	12	29	46	41	45	58	92	153	157	160	149	140	142	155	163	142	181	199	155	157	135	185	215	203	199	196	152	106	113	117	123	121	118	110	104	98	88	77	66	57	57	59	55	52	54	57	60	67	67	206
218	105	89	76	80	87	84	69	49	69	135	114	46	72	18	44	52	45	49	47	73	150	182	170	169	176	173	184	165	148	167	202	163	192	195	195	201	192	182	163	147	107	118	123	127	126	123	113	105	96	90	83	68	57	59	58	56	55	56	60	65	72	71	207
218	104	87	75	81	93	102	65	56	67	140	122	26	96	38	47	42	44	52	42	62	130	181	184	177	193	204	173	148	137	159	204	182	172	213	207	177	169	168	128	124	115	121	126	128	129	123	104	91	103	98	82	69	57	60	58	56	55	58	62	66	73	72	207
218	102	87	75	81	95	104	59	68	85	135	127	10	48	85	44	38	42	54	44	59	120	181	187	190	193	201	176	112	72	153	198	219	186	198	197	169	162	152	129	114	115	128	128	136	139	116	100	141	207	189	103	73	49	51	56	52	49	55	59	67	73	73	208
218	101	87	77	83	94	100	56	77	86	111	123	6	40	102	48	38	45	50	47	65	123	166	184	190	197	183	117	134	89	146	200	218	211	188	176	158	157	140	129	118	117	130	126	159	184	108	139	196	189	178	189	172	163	135	48	57	70	53	57	66	72	74	208
218	101	89	78	81	92	98	80	107	97	59	117	26	29	98	68	37	45	54	55	94	138	128	161	186	180	161	71	91	99	112	168	191	217	199	168	164	145	127	128	120	122	135	90	142	113	84	174	184	151	148	182	192	194	210	136	167	183	62	54	62	72	76	208
217	98	89	79	79	90	95	105	120	72	33	63	65	19	39	40	32	44	51	57	111	151	104	149	177	171	184	112	61	23	56	113	154	182	200	163	157	143	125	128	123	133	93	50	113	65	112	185	131	142	192	208	166	150	173	210	210	143	50	49	60	70	72	207
216	96	87	79	79	92	99	115	42	15	26	15	19	16	17	15	33	49	41	55	108	126	96	134	157	161	170	174	157	104	102	187	194	167	180	157	146	135	121	127	136	103	34	67	157	57	51	105	78	77	165	107	107	144	180	198	215	171	56	58	59	70	72	207
217	95	85	78	79	90	88	40	6	18	24	19	5	11	22	21	33	45	43	62	88	95	113	124	114	127	139	162	156	169	187	203	209	206	169	150	142	131	125	117	162	146	26	119	194	161	138	111	41	38	23	64	113	42	99	113	101	159	167	147	61	70	71	207
217	99	88	78	80	86	38	18	36	69	86	85	48	15	18	23	29	44	44	77	103	64	101	102	43	90	78	89	93	103	157	172	187	204	174	145	138	134	134	116	175	117	55	131	179	198	177	154	126	135	101	154	68	24	1	24	96	184	178	100	62	71	71	208
216	104	92	90	83	38	26	52	67	94	95	92	85	39	19	25	26	41	42	62	107	73	74	93	40	48	55	53	43	50	88	110	146	178	164	141	133	135	132	126	153	63	98	131	165	177	166	196	202	175	158	156	73	16	98	177	198	147	72	53	67	72	73	209
218	112	106	79	38	37	53	67	82	98	110	88	84	61	17	22	26	34	37	42	74	83	66	122	100	93	103	103	84	83	103	96	96	164	159	143	134	131	124	107	113	83	122	134	159	169	163	180	184	157	175	143	72	124	176	191	129	55	52	60	67	70	70	208
220	119	85	35	36	53	75	79	89	97	108	108	78	52	22	15	22	24	32	34	47	76	61	126	133	143	166	165	170	170	175	119	141	172	156	147	136	131	127	71	65	82	113	130	160	170	168	176	172	150	181	161	165	192	194	205	205	121	55	60	65	70	70	207
220	87	40	43	48	66	74	86	91	89	93	103	108	60	39	17	19	22	26	27	31	47	44	86	122	151	183	200	207	205	187	153	181	166	155	148	137	131	135	52	39	61	95	121	162	161	157	170	173	162	151	118	136	189	175	173	162	108	59	60	66	70	70	207
200	43	51	53	54	63	76	101	102	97	95	89	96	101	44	23	21	20	16	19	26	34	34	49	74	105	144	174	175	192	156	157	167	164	157	149	141	131	142	71	31	50	87	115	162	169	156	169	171	129	78	47	34	41	29	21	42	73	65	60	65	69	69	207
197	43	44	52	59	62	86	103	105	107	93	90	90	96	75	45	25	24	17	19	23	25	26	30	37	42	52	82	85	92	92	134	112	160	163	151	145	136	145	91	29	49	92	119	167	165	170	174	144	77	46	37	23	23	17	22	69	77	65	60	65	68	68	207
197	36	45	58	58	57	89	97	102	100	94	90	90	96	108	69	45	48	23	23	22	21	18	17	17	10	22	91	127	96	62	107	69	119	147	160	149	142	147	120	29	67	98	129	170	159	175	176	141	83	77	55	30	45	55	88	88	74	65	60	65	68	68	207
198	33	47	50	48	58	95	96	101	103	97	92	96	101	102	108	75	49	33	20	25	25	20	14	21	83	160	196	137	128	49	69	68	94	91	152	156	145	144	139	51	82	106	136	160	162	170	177	154	128	117	61	51	68	78	98	84	71	66	62	64	67	64	206
197	32	43	46	44	61	99	103	106	111	111	105	101	103	96	106	111	67	46	25	17	18	22	14	82	186	184	189	117	101	52	56	75	77	66	110	166	148	147	145	67	96	137	152	162	166	173	180	164	143	96	32	47	60	96	94	84	73	66	61	62	67	64	206
196	31	43	51	46	45	90	92	95	102	112	109	110	103	111	106	110	112	75	53	32	15	12	38	143	166	177	180	145	60	59	55	91	59	55	69	163	159	151	146	66	106	152	164	168	172	181	183	169	129	63	50	41	81	95	89	79	71	65	60	62	67	65	206
196	33	42	49	52	44	76	76	83	91	92	88	99	96	98	115	102	102	126	71	93	123	116	116	163	172	177	169	167	66	60	56	92	57	37	37	92	144	154	103	89	123	149	160	174	184	186	181	161	65	23	34	97	100	86	85	75	69	63	59	61	68	67	205
197	33	36	44	52	66	57	61	73	82	90	97	99	107	93	78	88	94	125	121	76	125	173	183	175	174	177	170	162	85	48	50	83	62	33	27	40	76	63	52	97	112	136	148	161	176	185	176	80	15	19	25	111	116	80	79	70	66	63	60	62	66	62	205
197	31	36	46	49	62	70	77	79	80	81	91	110	111	115	107	80	80	111	155	95	83	126	164	182	171	173	172	164	91	53	60	79	65	38	33	29	49	39	72	108	111	122	137	131	156	166	155	34	16	57	48	101	127	71	74	68	65	66	63	65	66	61	205
196	28	42	48	52	59	70	65	78	83	85	94	108	108	105	105	117	97	95	128	160	90	93	140	170	165	165	167	163	100	50	75	84	75	48	50	30	41	56	90	121	127	119	132	114	130	152	167	138	69	113	93	155	96	67	70	65	62	59	55	56	61	61	203
198	33	36	40	47	60	57	63	76	85	79	89	105	117	120	113	115	118	118	103	162	145	90	116	150	163	159	166	159	114	40	71	76	67	49	61	36	43	75	105	112	137	130	132	133	136	146	150	153	124	144	141	112	68	53	55	50	47	44	43	46	50	54	204
199	37	38	35	42	46	57	60	66	78	80	79	94	105	119	120	116	120	117	111	145	176	109	96	140	157	152	160	154	121	41	61	64	48	48	51	34	43	59	79	92	116	133	141	147	143	151	156	115	65	72	70	84	82	64	59	53	48	43	43	47	54	54	202
196	31	35	37	39	39	47	54	59	66	84	88	96	101	116	130	123	126	118	97	119	168	156	98	113	139	149	157	146	125	47	50	55	40	49	42	34	43	87	103	107	119	124	112	139	158	157	158	66	46	58	89	102	78	64	59	55	50	45	46	51	61	63	204
199	34	36	35	37	38	41	49	65	62	79	95	90	99	119	126	124	127	136	116	82	143	171	120	96	116	137	146	130	112	47	47	50	38	44	39	36	56	90	118	110	118	152	148	105	115	160	150	51	76	85	108	105	103	90	86	82	79	75	77	84	95	98	214
199	35	37	36	36	36	35	41	52	55	67	92	92	105	117	122	132	139	140	144	118	131	170	148	105	106	126	136	108	96	44	45	47	37	46	51	58	59	76	92	108	92	145	173	151	118	102	123	38	82	93	108	116	114	99	93	89	86	87	87	94	104	107	215
199	35	37	36	36	35	32	37	46	48	64	76	96	97	103	105	115	132	131	131	139	130	140	153	115	103	122	128	94	78	44	45	49	38	55	121	139	125	132	132	124	106	144	170	161	162	122	67	50	78	81	112	116	109	83	76	74	72	67	66	68	74	73	206
198	35	38	37	36	36	36	37	41	50	56	61	76	100	100	103	108	112	128	122	122	124	122	126	124	103	109	113	84	69	47	46	50	38	58	83	80	91	121	141	139	127	163	177	158	160	146	46	45	76	104	105	113	107	63	52	52	48	49	49	49	56	55	202
200	38	43	41	38	37	38	38	41	52	53	59	76	95	97	97	98	118	114	118	128	128	119	119	115	104	114	108	72	59	50	50	53	40	61	73	49	43	54	84	114	136	167	177	166	166	140	62	58	84	110	99	100	109	81	75	76	77	73	73	75	84	83	210
201	42	44	42	39	38	39	39	37	45	56	62	66	87	100	107	120	121	129	138	140	141	148	142	116	109	115	96	59	52	51	52	54	50	78	80	91	97	67	48	70	128	161	175	171	170	134	54	56	69	99	95	96	104	88	86	86	87	86	86	89	97	97	212
202	45	46	44	41	40	41	41	40	43	50	57	70	79	98	114	125	120	132	139	141	145	141	144	148	137	115	86	56	51	51	54	51	53	76	97	136	152	151	104	51	107	152	170	170	171	124	53	61	80	94	95	101	101	91	93	92	91	93	94	97	100	96	213
201	47	49	48	45	44	44	44	44	44	49	55	63	64	94	119	120	130	127	130	139	139	139	149	150	153	143	87	50	49	47	53	57	76	92	101	129	146	154	155	94	79	132	169	170	175	105	54	63	69	89	94	100	91	90	88	87	92	91	94	96	99	95	214
203	52	50	50	47	47	48	48	48	46	49	54	56	64	68	94	119	126	126	127	128	125	149	151	150	155	159	123	67	95	95	58	79	106	139	139	140	151	149	154	152	95	115	161	168	170	86	57	65	72	82	98	93	87	89	87	84	92	100	105	102	101	93	211
204	58	55	54	51	50	51	52	51	49	50	52	56	63	63	77	107	122	126	127	125	132	135	142	149	149	151	164	145	140	160	117	117	95	92	121	143	153	154	158	164	129	123	164	164	154	63	61	70	74	83	95	92	94	94	95	93	96	102	103	96	94	87	209
205	64	61	58	55	53	54	56	55	54	54	53	55	60	61	66	84	112	128	135	128	128	128	127	141	137	152	162	132	129	151	145	92	130	91	95	129	153	160	159	169	152	133	160	162	126	57	65	73	83	95	95	92	96	99	100	102	98	101	103	100	96	87	209
202	59	60	55	52	51	52	53	53	53	53	52	53	57	58	60	63	83	109	130	128	130	138	137	136	143	153	140	109	127	131	132	78	89	125	101	112	138	153	155	165	156	154	158	155	95	48	60	69	79	94	92	90	88	89	90	88	85	85	87	90	90	86	210
232	197	201	201	201	201	201	201	201	201	201	201	201	201	202	203	202	203	209	216	219	219	221	221	220	221	221	216	210	217	216	214	210	201	218	218	216	219	222	228	229	227	229	229	219	204	198	203	205	206	209	209	208	207	207	209	210	211	211	211	211	210	205	235