@@ -54,15 +54,15 @@ <h4>Boundary Handling</h4>
5454 < h4 > Runtime Comparison</ h4 >
5555 < p > [Summarize timing measurements and observations.]</ p >
5656 < figure >
57- < img src ="path/to /example_input.png " alt ="Example input image " />
57+ < img src ="images /example_input.png " alt ="Example input image " />
5858 < figcaption > Example input used for comparisons.</ figcaption >
5959 </ figure >
6060 < figure >
61- < img src ="path/to /numpy_conv_output.png " alt ="Output from NumPy convolution " />
61+ < img src ="images /numpy_conv_output.png " alt ="Output from NumPy convolution " />
6262 < figcaption > NumPy-only convolution result.</ figcaption >
6363 </ figure >
6464 < figure >
65- < img src ="path/to /scipy_conv_output.png " alt ="Output from SciPy convolve2d " />
65+ < img src ="images /scipy_conv_output.png " alt ="Output from SciPy convolve2d " />
6666 < figcaption > SciPy < code > convolve2d</ code > result (matching mode/boundaries).</ figcaption >
6767 </ figure >
6868 < p > < strong > Discussion:</ strong > [Comment on similarities/differences, numerical precision, and border artifacts.]</ p >
@@ -75,19 +75,19 @@ <h3>Part 1.2. Partial Derivatives, Gradient Magnitude, and Binarized Edge Image<
7575 < strong > Goal:</ strong > Show derivative images in x and y, compute the gradient magnitude, and present a binarized edge map. Justify any thresholding or denoising choices.
7676 </ p >
7777 < figure >
78- < img src ="path/to /partial_dx.png " alt ="Partial derivative in x " />
78+ < img src ="images /partial_dx.png " alt ="Partial derivative in x " />
7979 < figcaption > Partial derivative in x.</ figcaption >
8080 </ figure >
8181 < figure >
82- < img src ="path/to /partial_dy.png " alt ="Partial derivative in y " />
82+ < img src ="images /partial_dy.png " alt ="Partial derivative in y " />
8383 < figcaption > Partial derivative in y.</ figcaption >
8484 </ figure >
8585 < figure >
86- < img src ="path/to /grad_mag.png " alt ="Gradient magnitude image " />
86+ < img src ="images /grad_mag.png " alt ="Gradient magnitude image " />
8787 < figcaption > Gradient magnitude image.</ figcaption >
8888 </ figure >
8989 < figure >
90- < img src ="path/to /binary_edges.png " alt ="Binarized edge image " />
90+ < img src ="images /binary_edges.png " alt ="Binarized edge image " />
9191 < figcaption > Binarized edge image with chosen threshold(s).</ figcaption >
9292 </ figure >
9393 < p > < strong > Tradeoffs & Justification:</ strong > [Explain choice of thresholds, smoothing, and how you balanced noise vs completeness of edges.]</ p >
@@ -101,24 +101,24 @@ <h3>Part 1.3. Gaussian & DoG Filters; Cameraman Comparisons</h3>
101101 </ p >
102102 < h4 > Filter Visualizations</ h4 >
103103 < figure >
104- < img src ="path/to /gaussian_filter_viz.png " alt ="Gaussian filter visualization " />
104+ < img src ="images /gaussian_filter_viz.png " alt ="Gaussian filter visualization " />
105105 < figcaption > Gaussian filter visualization.</ figcaption >
106106 </ figure >
107107 < figure >
108- < img src ="path/to /dog_filter_viz.png " alt ="DoG filter visualization " />
108+ < img src ="images /dog_filter_viz.png " alt ="DoG filter visualization " />
109109 < figcaption > Difference-of-Gaussians (DoG) visualization.</ figcaption >
110110 </ figure >
111111 < h4 > Applications to Cameraman</ h4 >
112112 < figure >
113- < img src ="path/to /cameraman_gaussian.png " alt ="Cameraman after Gaussian smoothing " />
113+ < img src ="images /cameraman_gaussian.png " alt ="Cameraman after Gaussian smoothing " />
114114 < figcaption > Cameraman after Gaussian smoothing.</ figcaption >
115115 </ figure >
116116 < figure >
117- < img src ="path/to /cameraman_dog.png " alt ="Cameraman after DoG filtering " />
117+ < img src ="images /cameraman_dog.png " alt ="Cameraman after DoG filtering " />
118118 < figcaption > Cameraman after DoG filtering.</ figcaption >
119119 </ figure >
120120 < figure >
121- < img src ="path/to /cameraman_finite_diff.png " alt ="Cameraman finite difference results " />
121+ < img src ="images /cameraman_finite_diff.png " alt ="Cameraman finite difference results " />
122122 < figcaption > Finite difference method results for comparison.</ figcaption >
123123 </ figure >
124124 < p > < strong > Comparison & Discussion:</ strong > [Analyze differences in edge localization, noise sensitivity, and parameter effects.]</ p >
@@ -139,36 +139,36 @@ <h3>Part 2.1. Unsharp Mask</h3>
139139 </ p >
140140 < h4 > Taj Mahal</ h4 >
141141 < figure >
142- < img src ="path/to /taj_blurred.png " alt ="Taj Mahal blurred " />
142+ < img src ="images /taj_blurred.png " alt ="Taj Mahal blurred " />
143143 < figcaption > Blurred version (Taj Mahal).</ figcaption >
144144 </ figure >
145145 < figure >
146- < img src ="path/to /taj_highfreq.png " alt ="Taj Mahal high-frequency component " />
146+ < img src ="images /taj_highfreq.png " alt ="Taj Mahal high-frequency component " />
147147 < figcaption > High-frequency component (Taj Mahal).</ figcaption >
148148 </ figure >
149149 < figure >
150- < img src ="path/to /taj_sharpened_low.png " alt ="Taj Mahal sharpened (low amount) " />
150+ < img src ="images /taj_sharpened_low.png " alt ="Taj Mahal sharpened (low amount) " />
151151 < figcaption > Sharpened result (low amount).</ figcaption >
152152 </ figure >
153153 < figure >
154- < img src ="path/to /taj_sharpened_med.png " alt ="Taj Mahal sharpened (medium amount) " />
154+ < img src ="images /taj_sharpened_med.png " alt ="Taj Mahal sharpened (medium amount) " />
155155 < figcaption > Sharpened result (medium amount).</ figcaption >
156156 </ figure >
157157 < figure >
158- < img src ="path/to /taj_sharpened_high.png " alt ="Taj Mahal sharpened (high amount) " />
158+ < img src ="images /taj_sharpened_high.png " alt ="Taj Mahal sharpened (high amount) " />
159159 < figcaption > Sharpened result (high amount).</ figcaption >
160160 </ figure >
161161 < h4 > Additional Image</ h4 >
162162 < figure >
163- < img src ="path/to /other_blurred.png " alt ="Additional image blurred " />
163+ < img src ="images /other_blurred.png " alt ="Additional image blurred " />
164164 < figcaption > Blurred version (additional image).</ figcaption >
165165 </ figure >
166166 < figure >
167- < img src ="path/to /other_highfreq.png " alt ="Additional image high-frequency component " />
167+ < img src ="images /other_highfreq.png " alt ="Additional image high-frequency component " />
168168 < figcaption > High-frequency component (additional image).</ figcaption >
169169 </ figure >
170170 < figure >
171- < img src ="path/to /other_sharpened.png " alt ="Additional image sharpened " />
171+ < img src ="images /other_sharpened.png " alt ="Additional image sharpened " />
172172 < figcaption > Sharpened result (additional image).</ figcaption >
173173 </ figure >
174174 < p > < strong > Explanation:</ strong > [Summarize the unsharp mask formula, role of blur radius/sigma, and artifact considerations.]</ p >
@@ -182,53 +182,53 @@ <h3>Part 2.2. Hybrid Images</h3>
182182 </ p >
183183 < h4 > Full Pipeline Hybrid (Detailed)</ h4 >
184184 < figure >
185- < img src ="path/to /hybrid1_originalA.png " alt ="Original A (aligned) " />
185+ < img src ="images /hybrid1_originalA.png " alt ="Original A (aligned) " />
186186 < figcaption > Original A (aligned).</ figcaption >
187187 </ figure >
188188 < figure >
189- < img src ="path/to /hybrid1_originalB.png " alt ="Original B (aligned) " />
189+ < img src ="images /hybrid1_originalB.png " alt ="Original B (aligned) " />
190190 < figcaption > Original B (aligned).</ figcaption >
191191 </ figure >
192192 < figure >
193- < img src ="path/to /hybrid1_fftA.png " alt ="Fourier transform of A " />
193+ < img src ="images /hybrid1_fftA.png " alt ="Fourier transform of A " />
194194 < figcaption > Fourier transform (A).</ figcaption >
195195 </ figure >
196196 < figure >
197- < img src ="path/to /hybrid1_fftB.png " alt ="Fourier transform of B " />
197+ < img src ="images /hybrid1_fftB.png " alt ="Fourier transform of B " />
198198 < figcaption > Fourier transform (B).</ figcaption >
199199 </ figure >
200200 < figure >
201- < img src ="path/to /hybrid1_filteredA.png " alt ="Filtered A " />
201+ < img src ="images /hybrid1_filteredA.png " alt ="Filtered A " />
202202 < figcaption > Filtered result (A).</ figcaption >
203203 </ figure >
204204 < figure >
205- < img src ="path/to /hybrid1_filteredB.png " alt ="Filtered B " />
205+ < img src ="images /hybrid1_filteredB.png " alt ="Filtered B " />
206206 < figcaption > Filtered result (B).</ figcaption >
207207 </ figure >
208208 < figure >
209- < img src ="path/to /hybrid1_cutoff.png " alt ="Cutoff frequency visualization/justification " />
209+ < img src ="images /hybrid1_cutoff.png " alt ="Cutoff frequency visualization/justification " />
210210 < figcaption > Cutoff frequency choice and justification.</ figcaption >
211211 </ figure >
212212 < figure >
213- < img src ="path/to /hybrid1_final.png " alt ="Final hybrid image " />
213+ < img src ="images /hybrid1_final.png " alt ="Final hybrid image " />
214214 < figcaption > Final hybrid image (detailed pipeline).</ figcaption >
215215 </ figure >
216216
217217 < h4 > Additional Hybrids (Brief)</ h4 >
218218 < figure >
219- < img src ="path/to /hybrid2_originals.png " alt ="Originals for Hybrid 2 " />
219+ < img src ="images /hybrid2_originals.png " alt ="Originals for Hybrid 2 " />
220220 < figcaption > Original images for Hybrid 2.</ figcaption >
221221 </ figure >
222222 < figure >
223- < img src ="path/to /hybrid2_final.png " alt ="Hybrid 2 final " />
223+ < img src ="images /hybrid2_final.png " alt ="Hybrid 2 final " />
224224 < figcaption > Hybrid 2 — final result.</ figcaption >
225225 </ figure >
226226 < figure >
227- < img src ="path/to /hybrid3_originals.png " alt ="Originals for Hybrid 3 " />
227+ < img src ="images /hybrid3_originals.png " alt ="Originals for Hybrid 3 " />
228228 < figcaption > Original images for Hybrid 3.</ figcaption >
229229 </ figure >
230230 < figure >
231- < img src ="path/to /hybrid3_final.png " alt ="Hybrid 3 final " />
231+ < img src ="images /hybrid3_final.png " alt ="Hybrid 3 final " />
232232 < figcaption > Hybrid 3 — final result.</ figcaption >
233233 </ figure >
234234 </ article >
@@ -241,25 +241,25 @@ <h3>Part 2.3 & 2.4. Gaussian/Laplacian Stacks; Figure 3.42(a–l); Custom Bl
241241 </ p >
242242 < h4 > Gaussian & Laplacian Stacks (Orange + Apple)</ h4 >
243243 < figure >
244- < img src ="path/to /orapple_gaussian_stack.png " alt ="Gaussian stack visualization " />
244+ < img src ="images /orapple_gaussian_stack.png " alt ="Gaussian stack visualization " />
245245 < figcaption > Gaussian stack visualization (Orange + Apple).</ figcaption >
246246 </ figure >
247247 < figure >
248- < img src ="path/to /orapple_laplacian_stack.png " alt ="Laplacian stack visualization " />
248+ < img src ="images /orapple_laplacian_stack.png " alt ="Laplacian stack visualization " />
249249 < figcaption > Laplacian stack visualization (Orange + Apple).</ figcaption >
250250 </ figure >
251251 < h4 > Recreated Figure 3.42(a–l)</ h4 >
252252 < figure >
253- < img src ="path/to /figure342_grid.png " alt ="Grid of results analogous to Fig. 3.42(a–l) " />
253+ < img src ="images /figure342_grid.png " alt ="Grid of results analogous to Fig. 3.42(a–l) " />
254254 < figcaption > Outcomes analogous to Figure 3.42(a–l).</ figcaption >
255255 </ figure >
256256 < h4 > Custom Blended Images</ h4 >
257257 < figure >
258- < img src ="path/to /custom_blend1.png " alt ="Custom blended image with irregular mask " />
258+ < img src ="images /custom_blend1.png " alt ="Custom blended image with irregular mask " />
259259 < figcaption > Custom blend #1 (irregular mask).</ figcaption >
260260 </ figure >
261261 < figure >
262- < img src ="path/to /custom_blend2.png " alt ="Custom blended image (straight mask) " />
262+ < img src ="images /custom_blend2.png " alt ="Custom blended image (straight mask) " />
263263 < figcaption > Custom blend #2.</ figcaption >
264264 </ figure >
265265 < p > < strong > Notes & Discussion:</ strong > [Describe masks, blending levels, feathering choices, and artifacts.]</ p >
0 commit comments