پردازش تصویر

پردازش تصویر (کار با تصاویر در جاوا)

این آموزش مربوط به پردازش تصویر است. در این آموزش به پیش نیازهای پردازش تصویر در جاوا خواهیم پرداخت. پیش نیاز این آموزش آشنایی مقدماتی با جاوا است.

پردازش تصویر

پردازش تصاویر امروزه بیشتر به موضوع پردازش تصویر دیجیتال گفته می‌شود که شاخه‌ای از دانش رایانه است که با پردازش سیگنال دیجیتال که نماینده تصاویر برداشته شده با دوربین دیجیتال یا پویش شده توسط پویشگر هستند سر و کار دارد.

پردازش تصاویر دارای دو شاخه عمده بهبود تصاویر و بینایی ماشین است. بهبود تصاویر دربرگیرنده روشهایی چون استفاده از فیلتر محوکننده و افزایش تضاد برای بهتر کردن کیفیت دیداری تصاویر و اطمینان از نمایش درست آنها در محیط مقصد (مانند چاپگر یا نمایشگر رایانه) است، در حالی که بینایی ماشین به روشهایی می‌پردازد که به کمک آنها می‌توان معنی و محتوای تصاویر را درک کرد تا از آنها در کارهایی چون رباتیک و محور تصاویر استفاده شود.

در معنای خاص آن پردازش تصویر عبارتست از هر نوع پردازش سیگنال که ورودی یک تصویر است مثل عکس یا صحنه‌ای از یک فیلم. خروجی پردازشگر تصویر می‌تواند یک تصویر یا یک مجموعه از نشانهای ویژه یا متغیرهای مربوط به تصویر باشد. اغلب تکنیک‌های پردازش تصویر شامل برخورد با تصویر به عنوان یک سیگنال دو بعدی و بکاربستن تکنیک‌های استاندارد پردازش سیگنال روی آنها می‌شود. پردازش تصویر اغلب به پردازش دیجیتالی تصویر اشاره می‌کند ولی پردازش نوری و آنالوگ تصویر هم وجود دارند. این مقاله در مورد تکنیک‌های کلی است که برای همه آنها به کار می‌رود.(ویکیپدیا)

 

خواندن عکس در جاوا

برای کار با تصاویر ابتدا نیاز داریم محتویات یک عکس را بخوانیم و سپس پردازش های دلخواه خودمان را روی آن عکس انجام دهیم. جاوا یک کتابخانه به نام ImageIO را برای ما فراهم کرده است. این کتابخانه کار با تصاویر را برای ما ساده میکند و به راحتی میتوان یک فایل با فرمت های مختلف را در جاوا خواند. کد زیر نحوه خواندن عکس را نشان میدهد.

     public static void main(String[] args) {

          try {

              BufferedImage image = ImageIO.read(new File(“baboon.png”));

          } catch (IOException e) {

              e.printStackTrace();

          }

     }

همانطور که در کد بالا میبینید imageio یک متد به نام read دارد و یک فایل به عنوان ورودی میگیرد ما در همان جا یک فایل new  کردیم و در آخر متد read خروجی اش از جنس BufferedImage است. BufferedImage یکی از فرزندان کلاس Image است و برای تغییر یا کنترل یک عکس از آن استفاده میشود

ممکن است با مشکل import در هنگام اجرای کد رو به رو شوید. در این صورت :

  1. بر روی jre پروژه خود کلیک راست کرده
  2. به properties بروید
  3. در قسمت select envirement بر روی گزینه (J2SE-1.5(jre8 یا مشابه این گزینه، کلیک کنید.

 

دانلود و ذخیره فایل

در این قسمت میخواهیم عکسی که در وبسایت ما قرار دارد را بگیریم و ذخیره کنیم. کتابخانه imageio این کار را هم برای ما آسان کرده است. کد زیر نحوه دانلود و ذخیره عکس است.

     public static void main(String[] args) {

    BufferedImage image = null;

        try {

            URL url = new URL(“http://www.sgharibi.com/wp-content/uploads/2016/04/web-site-image.jpg”);

            image = ImageIO.read(url);

            ImageIO.write(image, “jpg”,new File(“download.jpg”));

        } catch (IOException e) {

          e.printStackTrace();

        }

        System.out.println(“Done”);

     }

 

در جاوا کتابخانه JAVA.NET دارای کلاس هایی برای ذخیره آدرس اینترنتی است(نیاز به import این کتابخانه دارید). هر آدرس اینترنتی در جاوا از طریق URL نشان داده می شود.ما از این کلاس برای ذخیره آدرس عکس خود استفاده کردیم.

کتابخانه imageio یک URL میگیرد و پس از دانلود آن عکس به صورت bufferedImage آن را برمیگرداند. همین کتابخانه یک متد به نام write دارد سه ورودی میگیرد اول آدرس که میخواهیم فایل در آن ذخیره شود و دوم فرمت فایل و سوم BufferedImage که در آن عکس ما وجود دارد.  با صدا زدن این متد و دادن ورودی های مورد نیاز، عکس ما در کامپیوتر ذخیره خواهد شد.در نهایت عکس زیر در کامپیوتر شما ذخیره خواهد شد.

عکس استفاده شده در پردازش تصویر

 

این عکس در پردازش تصویر بسیار معروف است و بسیاری از این عکس به عنوان تست در پردازش تصویر استفاده می کنند.

 

 

تغییر عکس و کار روی تصاویر در آموزش بعدی …………

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *