{"id":92898,"date":"2025-01-14T08:58:41","date_gmt":"2025-01-14T05:28:41","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/%d9%be%db%8c%d8%a7%d8%af%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%db%8c%da%a9-%d8%b1%d9%88%d8%b4-%d8%b3%d8%a7%d8%af%d9%87-%d8%a7%d8%b1%d8%b2%db%8c%d8%a7%d8%a8%db%8c-%da%a9%db%8c%d9%81%db%8c%d8%aa-%d8%aa%d8%b5\/"},"modified":"2025-01-14T08:58:41","modified_gmt":"2025-01-14T05:28:41","slug":"%d9%be%db%8c%d8%a7%d8%af%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%db%8c%da%a9-%d8%b1%d9%88%d8%b4-%d8%b3%d8%a7%d8%af%d9%87-%d8%a7%d8%b1%d8%b2%db%8c%d8%a7%d8%a8%db%8c-%da%a9%db%8c%d9%81%db%8c%d8%aa-%d8%aa%d8%b5","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/%d9%be%db%8c%d8%a7%d8%af%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%db%8c%da%a9-%d8%b1%d9%88%d8%b4-%d8%b3%d8%a7%d8%af%d9%87-%d8%a7%d8%b1%d8%b2%db%8c%d8%a7%d8%a8%db%8c-%da%a9%db%8c%d9%81%db%8c%d8%aa-%d8%aa%d8%b5\/","title":{"rendered":"\u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u06cc\u06a9 \u0631\u0648\u0634 \u0633\u0627\u062f\u0647 \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u06a9\u06cc\u0641\u06cc\u062a \u062a\u0635\u0648\u06cc\u0631 \u0628\u0631 \u0627\u0633\u0627\u0633 \u062c\u0627\u0648\u0627 \u0648 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u06a9\u062f"},"content":{"rendered":"<div data-article-id=\"2205909\" id=\"article-body\">\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7dqg3va65oygxpkyjren.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"643\" height=\"569\" title=\"\"><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>`import java.awt.image.BufferedImage;\nimport java.io.File;\nimport java.io.IOException;\nimport javax.imageio.ImageIO;\n\npublic class ImageQualityEvaluation {\n\n    \/\/ \n    public static double calculateMSE(BufferedImage original, BufferedImage compressed) {\n        int width = original.getWidth();\n        int height = original.getHeight();\n        double mse = 0.0;\n\n        for (int i = 0; i &lt; width; i++) {\n            for (int j = 0; j &lt; height; j++) {\n                int originalPixel = original.getRGB(i, j);\n                int compressedPixel = compressed.getRGB(i, j);\n\n                \/\/ \n                int originalRed = (originalPixel &gt;&gt; 16) &amp; 0xff;\n                int originalGreen = (originalPixel &gt;&gt; 8) &amp; 0xff;\n                int originalBlue = originalPixel &amp; 0xff;\n\n                int compressedRed = (compressedPixel &gt;&gt; 16) &amp; 0xff;\n                int compressedGreen = (compressedPixel &gt;&gt; 8) &amp; 0xff;\n                int compressedBlue = compressedPixel &amp; 0xff;\n\n                \/\/ \n                mse += Math.pow(originalRed - compressedRed, 2);\n                mse += Math.pow(originalGreen - compressedGreen, 2);\n                mse += Math.pow(originalBlue - compressedBlue, 2);\n            }\n        }\n\n        \/\/ \n        mse \/= (width * height * 3);  \/\/ \n        return mse;\n    }\n\n    \/\/ \n    public static double calculatePSNR(double mse) {\n        int MAX_PIXEL_VALUE = 255;  \/\/ \n        return 10 * Math.log10(Math.pow(MAX_PIXEL_VALUE, 2) \/ mse);\n    }\n\n    public static void main(String[] args) throws IOException {\n        \/\/ \n        BufferedImage originalImage = ImageIO.read(new File(\"original_image.png\"));\n        BufferedImage compressedImage = ImageIO.read(new File(\"compressed_image.png\"));\n\n        \/\/ \n        double mse = calculateMSE(originalImage, compressedImage);\n        System.out.println(\"MSE: \" + mse);\n\n        \/\/\n        double psnr = calculatePSNR(mse);\n        System.out.println(\"PSNR: \" + psnr + \" dB\");\n    }\n}`\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnc94ame3lowyeacisfc1.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"619\" height=\"628\" title=\"\"><\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>`import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; public class ImageQualityEvaluation { \/\/ public static double calculateMSE(BufferedImage original, BufferedImage compressed) { int width = original.getWidth(); int height = original.getHeight(); double mse = 0.0; for (int i = 0; i &lt; width; i++) { for (int j = 0; j &lt; height; j++) { int originalPixel &hellip;<\/p>\n","protected":false},"author":2,"featured_media":92899,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/media2.dev.to\/dynamic\/image\/width=1000,height=500,fit=cover,gravity=auto,format=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0v9ll14ptgzpssby575c.png","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-92898","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/92898","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=92898"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/92898\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/92899"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=92898"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=92898"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=92898"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}