{"id":218,"date":"2026-04-21T00:18:00","date_gmt":"2026-04-21T00:18:00","guid":{"rendered":"https:\/\/madelinekrajewski.knight.domains\/capstone\/?page_id=218"},"modified":"2026-04-27T05:21:45","modified_gmt":"2026-04-27T05:21:45","slug":"week-12-post","status":"publish","type":"page","link":"https:\/\/madelinekrajewski.knight.domains\/capstone\/blog\/week-12-post\/","title":{"rendered":"Week 12: Recalibration"},"content":{"rendered":"<h5 class=\"wp-block-heading has-text-align-center\" id=\"madeline-krajewski\">Madeline Krajewski<\/h5>\n\n\n<div class=\"has-text-align-center wp-block-post-date__modified-date wp-block-post-date\"><time datetime=\"2026-04-21T00:18:00+00:00\">April 21, 2026<\/time><\/div>\n\n\n<p>This week, I finished up the debugging of Algorithm 1. A simple shift to the wrong direction caused the desaturation, and an incongruency between the encoding and decoding starting points caused the striation. Here is proof of this success via the decoder:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"965\" height=\"392\" src=\"https:\/\/madelinekrajewski.knight.domains\/capstone\/wp-content\/uploads\/2026\/04\/image-3.png\" alt=\"\" class=\"wp-image-699\" srcset=\"https:\/\/madelinekrajewski.knight.domains\/capstone\/wp-content\/uploads\/2026\/04\/image-3.png 965w, https:\/\/madelinekrajewski.knight.domains\/capstone\/wp-content\/uploads\/2026\/04\/image-3-300x122.png 300w, https:\/\/madelinekrajewski.knight.domains\/capstone\/wp-content\/uploads\/2026\/04\/image-3-768x312.png 768w\" sizes=\"auto, (max-width: 965px) 100vw, 965px\" \/><\/figure>\n\n\n\n<p>Huzzah! This success felt wonderful after the weeks of constantly thinking I had completed the process. I think, at this point, I can say the <em>code <\/em>for the encoder and decoder is done! I continued to add documentation to my currently written functions as well, and I only have the two biggest functions left. With only the &#8216;fun&#8217; parts left of Algorithm 1 (tasks<sup data-fn=\"07bb7d9c-7b13-423f-b69e-b4f406f09701\" class=\"fn\"><a href=\"#07bb7d9c-7b13-423f-b69e-b4f406f09701\" id=\"07bb7d9c-7b13-423f-b69e-b4f406f09701-link\">1<\/a><\/sup> and UI clean up), it&#8217;s finally time to turn my attention to Algorithm 2. This one does not work at all how I had thought, and I&#8217;m glad to <\/p>\n\n\n\n<p>So, how does this Algorithm work? Basically, we take one (black and white) image and break it into shares. For now, I need to make two shares; the shares will also be the same size as the host image. Both shares also need to be present to reveal the secret image. Here is what the process looks like:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"633\" src=\"https:\/\/madelinekrajewski.knight.domains\/capstone\/wp-content\/uploads\/2026\/04\/image-7-1024x633.png\" alt=\"\" class=\"wp-image-705\" srcset=\"https:\/\/madelinekrajewski.knight.domains\/capstone\/wp-content\/uploads\/2026\/04\/image-7-1024x633.png 1024w, https:\/\/madelinekrajewski.knight.domains\/capstone\/wp-content\/uploads\/2026\/04\/image-7-300x185.png 300w, https:\/\/madelinekrajewski.knight.domains\/capstone\/wp-content\/uploads\/2026\/04\/image-7-768x475.png 768w, https:\/\/madelinekrajewski.knight.domains\/capstone\/wp-content\/uploads\/2026\/04\/image-7.png 1192w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>A series of permutations (or &#8220;coin tosses&#8221;) generate where the data gets stored, and another one chooses which outcome gets passed to the shareholders. I&#8217;ve replicated Doug Stinson&#8217;s chart here, but I changed some of the phrasing and terms to hopefully better convey what is going on here. I struggled with determining this, and I found this rephrasing helpful for myself.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"755\" height=\"561\" src=\"https:\/\/madelinekrajewski.knight.domains\/capstone\/wp-content\/uploads\/2026\/04\/image-5.png\" alt=\"\" class=\"wp-image-701\" srcset=\"https:\/\/madelinekrajewski.knight.domains\/capstone\/wp-content\/uploads\/2026\/04\/image-5.png 755w, https:\/\/madelinekrajewski.knight.domains\/capstone\/wp-content\/uploads\/2026\/04\/image-5-300x223.png 300w\" sizes=\"auto, (max-width: 755px) 100vw, 755px\" \/><\/figure>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>For those interested in Doug Stinson&#8217;s version, I&#8217;ve added it here.<\/summary>\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"343\" height=\"343\" src=\"https:\/\/madelinekrajewski.knight.domains\/capstone\/wp-content\/uploads\/2026\/04\/image-4-edited.png\" alt=\"\" class=\"wp-image-702\" srcset=\"https:\/\/madelinekrajewski.knight.domains\/capstone\/wp-content\/uploads\/2026\/04\/image-4-edited.png 343w, https:\/\/madelinekrajewski.knight.domains\/capstone\/wp-content\/uploads\/2026\/04\/image-4-edited-300x300.png 300w, https:\/\/madelinekrajewski.knight.domains\/capstone\/wp-content\/uploads\/2026\/04\/image-4-edited-150x150.png 150w\" sizes=\"auto, (max-width: 343px) 100vw, 343px\" \/><\/figure>\n\n\n\n<p>Reference: Visual Cryptography and Threshold Schemes\u201d by Doug Stinson<\/p>\n<\/details>\n\n\n\n<p>So far, I&#8217;ve been working with pixels in the singular context of it being exactly one color. However, pixels generally look similar to this:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"137\" height=\"122\" src=\"https:\/\/madelinekrajewski.knight.domains\/capstone\/wp-content\/uploads\/2026\/04\/image-8.png\" alt=\"\" class=\"wp-image-706\"\/><\/figure>\n\n\n\n<p>This is something I didn&#8217;t realize when I first began approaching this project. Since pixels are so small, our eyes cannot perceive these changes. The light coalesces into one unifying color, which is why we perceive a pixel as yellow, or green, or orange. When the colors are all identical, it forms a grayscale version of the shade. Black is (0, 0, 0), and white is (255, 255, 255). I am uncertain quite how the colors come out quite right to form the black and white halves, but my professor has reassured me this is the case, and I have decided to simply trust it and hope to find understanding through doing the project as opposed to knowing up front. I suspect the knowledge of a pixel&#8217;s divisions as depicted above will aid me in the future, hence why I share it here. This week, I will complete the UI, implement the progress bar via tasks, and continue to try working out the algorithm on paper.<\/p>\n\n\n<ul class=\"wp-block-list is-layout-flex wp-container-core-list-is-layout-fe9cc265 wp-block-list-is-layout-flex\" style=\"\"><\/ul>\n\n\n<ol class=\"wp-block-footnotes\"><li id=\"07bb7d9c-7b13-423f-b69e-b4f406f09701\">Tasks are a computer science technique which allows processes to run without locking up the computer&#8217;s display. By adding this, I can add a progress bar which updates in real time, as well as a &#8216;cancel&#8217; option so the user can exit if the process is taking too long or if they decide they dislike the image they chose. <a href=\"#07bb7d9c-7b13-423f-b69e-b4f406f09701-link\" aria-label=\"Jump to footnote reference 1\">\u21a9\ufe0e<\/a><\/li><\/ol>\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Sources<\/summary>\n<p>&#8220;Duck Silhouette&#8221; by <a href=\"https:\/\/pixabay.com\/users\/kreatikar-8562930\/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=4535343\" target=\"_blank\" rel=\"noreferrer noopener\">Mudassar Iqbal<\/a> from <a href=\"https:\/\/pixabay.com\/\/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=4535343\" target=\"_blank\" rel=\"noreferrer noopener\">Pixabay<\/a><\/p>\n\n\n\n<p>&#8220;Static Noise&#8221; by <a href=\"https:\/\/www.publicdomainpictures.net\/en\/browse-author.php?a=124903\" target=\"_blank\" rel=\"noreferrer noopener\">Theodore Palser<\/a> from <a href=\"https:\/\/www.publicdomainpictures.net\/en\/view-image.php?image=201932&amp;picture=tv-noise\" data-type=\"link\" data-id=\"https:\/\/www.publicdomainpictures.net\/en\/view-image.php?image=201932&amp;picture=tv-noise\" target=\"_blank\" rel=\"noreferrer noopener\">PublicDomainPictures.net<\/a><\/p>\n<\/details>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/madelinekrajewski.knight.domains\/capstone\/blog\/week-11-post\/\">Previous: Week 11<\/a><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-buttons is-content-justification-right is-layout-flex wp-container-core-buttons-is-layout-d445cf74 wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/madelinekrajewski.knight.domains\/capstone\/blog\/week-13-post\/\">Next: Week 13<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Madeline Krajewski This week, I finished up the debugging of Algorithm 1. A simple shift to the wrong direction caused the desaturation, and an incongruency between the encoding and decoding starting points caused the striation. Here is proof of this success via the decoder: Huzzah! This success felt wonderful after the weeks of constantly thinking [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":88,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":"[{\"content\":\"Tasks are a computer science technique which allows processes to run without locking up the computer's display. By adding this, I can add a progress bar which updates in real time, as well as a 'cancel' option so the user can exit if the process is taking too long or if they decide they dislike the image they chose.\",\"id\":\"07bb7d9c-7b13-423f-b69e-b4f406f09701\"}]"},"class_list":["post-218","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/madelinekrajewski.knight.domains\/capstone\/wp-json\/wp\/v2\/pages\/218","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/madelinekrajewski.knight.domains\/capstone\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/madelinekrajewski.knight.domains\/capstone\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/madelinekrajewski.knight.domains\/capstone\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/madelinekrajewski.knight.domains\/capstone\/wp-json\/wp\/v2\/comments?post=218"}],"version-history":[{"count":9,"href":"https:\/\/madelinekrajewski.knight.domains\/capstone\/wp-json\/wp\/v2\/pages\/218\/revisions"}],"predecessor-version":[{"id":741,"href":"https:\/\/madelinekrajewski.knight.domains\/capstone\/wp-json\/wp\/v2\/pages\/218\/revisions\/741"}],"up":[{"embeddable":true,"href":"https:\/\/madelinekrajewski.knight.domains\/capstone\/wp-json\/wp\/v2\/pages\/88"}],"wp:attachment":[{"href":"https:\/\/madelinekrajewski.knight.domains\/capstone\/wp-json\/wp\/v2\/media?parent=218"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}