ওয়েভলেট ট্রান্সফর্ম


9

আমি একটি চিত্রের 2D হর ডিসিভার্ট ওয়েভলেট ট্রান্সফর্ম এবং বিপরীত ডিডাব্লুটি করতে চাই। আপনি কি দয়া করে 2 ডি হর ডিস্রিট ওয়েভলেট ট্রান্সফর্ম এবং বিপরীত ডিডাব্লুটি একটি সাধারণ ভাষায় এবং একটি অ্যালগরিদম ব্যবহার করে আমি 2D হর ডাব্লুটি জন্য কোড লিখতে পারি তা ব্যবহার করে? গুগলে প্রদত্ত তথ্যগুলি খুব প্রযুক্তিগত ছিল I চিত্রটিকে 4 টি সাব-ব্যান্ডে বিভক্ত করার মতো প্রাথমিক বিষয়গুলি আমি বুঝতে পেরেছিলাম: এলএল, এলএইচ, এইচএল, এইচএইচ, তবে কীভাবে ডিডাব্লুটি এবং আইডিডব্লিউটি সঞ্চালনের জন্য কোনও প্রোগ্রাম লিখতে হয় তা আমি সত্যিই বুঝতে পারি না একটি চিত্র। আমি আরও পড়লাম যে DWT পুরোপুরি চিত্রটিতে সঞ্চালিত হওয়ার সাথে সাথে DCT এর চেয়ে আরও ভাল এবং তারপরে কিছু ব্যাখ্যা ছিল যা আমার মাথার শীর্ষে চলে গেছে I আমি এখানে ভুল হতে পারি তবে আমি মনে করি DWT এবং DCT সংক্ষেপণের কৌশলগুলি কারণ যখন তাদের উপর ডিডাব্লুটি বা ডিসিটি সঞ্চালিত হয় তখন চিত্রের আকার হ্রাস পায় op আশা করি লোকেরা আপনার জ্ঞানের একটি অংশ ভাগ করে নেবে এবং আমার জ্ঞান বাড়িয়ে তুলবে।

ধন্যবাদ

উত্তর: ইমেজ ফর্ম্যাটটির সাথে কি কিছু করার আছে? ডিডাব্লুটি-তে ব্যবহৃত "পিক্সেলের মান" কী? আমি এটিকে চিত্রটির আরজিবি মান বলে ধরে নিয়েছি।

import java.awt.event.*;
import javax.swing.*;
import java.awt.image.BufferedImage;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import java.io.*;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.imageio.ImageIO;
import java.awt.*;
import java.lang.*;
import java.util.*;

class DiscreteWaveletTransform

{

    public static void main(String arg[])
    { DiscreteWaveletTransform dwt=new DiscreteWaveletTransform();
      dwt.initial();
    }


    static final int TYPE=BufferedImage.TYPE_INT_RGB;
    public void initial()
    {
    try{

        BufferedImage buf=ImageIO.read(new File("lena.bmp"));
        int w=buf.getWidth();
        int h=buf.getHeight();
        BufferedImage dwtimage=new BufferedImage(h,w,TYPE);
        int[][] pixel=new int[h][w];
        for (int x=0;x<h;x++)
        {
            for(int y=0;y<w;y++)
            {
                pixel[x][y]=buf.getRGB(x,y);


            }
        }
        int[][] mat =  new int[h][w];
        int[][] mat2 =  new int[h][w];

        for(int a=0;a<h;a++)
        {
            for(int b=0,c=0;b<w;b+=2,c++)
            {
                mat[a][c]    = (pixel[a][b]+pixel[a][b+1])/2;
                mat[a][c+(w/2)]  = Math.abs(pixel[a][b]-pixel[a][b+1]);
            }
        }
        for(int p=0;p<w;p++)
        {
            for(int q=0,r =0 ;q<h;q+=2)
            {
                mat2[r][p]   = (mat[q][p]+mat[q+1][p])/2;
                mat2[r+(h/2)][p] = Math.abs(mat[q][p]-mat[q+1][p]);
            }
        }
        for (int x=0;x<h;x++)
        {
            for(int y=0;y<w;y++)
            {
                dwtimage.setRGB(x,y,mat2[x][y]);
            }
        }
        String format="bmp";
        ImageIO.write(dwtimage,format, new File("DWTIMAGE.bmp"));
        }

        catch(Exception e)
        {
            e.printStackTrace();
        }
    }
}

আউটপুটটি একটি কালো চিত্র যা মাঝখানে পাতলা রেখার সাথে সংক্ষিপ্তভাবে প্রকৃত আউটপুটটির কাছে নেই here আমি মনে করি আমি যুক্তিটি ভুলভাবে ব্যাখ্যা করেছি lease দয়া করে ভুলগুলি উল্লেখ করুন the শুভেচ্ছা সহ



উপরের কোডটি আমার কাছে অনেকগুলি অর্থ ধন্যবাদ .. আপনি কি দয়া করে আমাকে 2D হর রূপান্তরটির বিপরীতের জন্য জাভা কোডটি সরবরাহ করতে পারেন

উত্তর:


15

আপনি দয়া করে একটি সহজ ভাষায় 2 ডি হার বিচ্ছিন্ন তরঙ্গকরণ রূপান্তর এবং বিপরীত ডিডাব্লুটি ব্যাখ্যা করবেন?

বিচ্ছিন্ন ফুরিয়ার ট্রান্সফর্মের শর্তে ওয়েভলেটের রূপান্তর সম্পর্কে চিন্তা করা দরকারী (বেশ কয়েকটি কারণে, দয়া করে নীচে দেখুন)। ফুরিয়ার ট্রান্সফর্মে, আপনি একটি সংকেতটি অরথোগোনাল ত্রিকোণোমিত্রিক ফাংশন (কোস এবং পাপ) এর বিভাজনে ক্ষয় করেন। অরথোগোনাল হওয়া তাদের পক্ষে অত্যাবশ্যক যাতে আপনার সংকেতগুলি সহগের সিরিজগুলিতে (দুটি ফাংশন যা মূলত একে অপরের স্বতন্ত্র E

অরথোগোনালটির এই মাপদণ্ডকে মনে রেখে কোস এবং পাপ ছাড়াও আরও দুটি কার্যকরী কি অরথগোনাল খুঁজে পাওয়া সম্ভব?

হ্যাঁ, অতিরিক্ত দরকারী চারিত্রিক বৈশিষ্ট্য যা এগুলি অনন্ততায় প্রসারিত হয় না (যেমন কোস এবং পাপ করেন) এর সাথে এই জাতীয় ফাংশন নিয়ে আসা সম্ভব। এই জাতীয় ফাংশনগুলির একটি উদাহরণ হর ওয়েভলেট

এখন, ডিএসপির পরিপ্রেক্ষিতে, এই দুটি "অরথোগোনাল ফাংশন" সম্পর্কে দুটি ফিনিট ইমপালস রেসপন্স (এফআইআর) ফিল্টার এবং ডিস্ক্রিট ওয়েভলেট ট্রান্সফর্মকে কনভলিউশনগুলির একটি সিরিজ হিসাবে বিবেচনা করা (বা অন্য কথায়, এই ফিল্টারগুলি ধারাবাহিকভাবে প্রয়োগ করা ) সম্ভবত আরও ব্যবহারিক কিছু সময়ের সিরিজ)। আপনি তুলনা এবং 1-ডি ডিডব্লিউটি এর সূত্র বিসদৃশ দ্বারা এবং এই যাচাই করতে পারেন সংবর্তন যে

প্রকৃতপক্ষে, আপনি যদি হয়ার ক্রিয়াটি ঘনিষ্ঠভাবে লক্ষ্য করেন তবে আপনি দুটি সর্বাধিক প্রাথমিক নিম্ন পাস এবং উচ্চ পাস ফিল্টার দেখতে পাবেন। এখানে একটি খুব সাধারণ লো পাস ফিল্টার এইচ = [0.5,0.5] (মুহুর্তের জন্য স্কেলিং সম্পর্কে চিন্তা করবেন না) এটি চলন্ত গড় ফিল্টার হিসাবেও পরিচিত কারণ এটি প্রতিটি দুটি সংলগ্ন নমুনার মূলত গড় দেয়। এখানে একটি খুব সাধারণ হাই পাস ফিল্টার এইচ = [1, -1] এছাড়াও একটি ডিফারেন্টিটার হিসাবে পরিচিত কারণ এটি দুটি সংলগ্ন নমুনার মধ্যে পার্থক্য ফিরিয়ে দেয়।

কোনও চিত্রে DWT-IDWT সম্পাদন করার জন্য, এটি কেবল দৃ conv়প্রত্যয়ের দুটি মাত্রিক সংস্করণ ব্যবহার করার ক্ষেত্রে (আপনার হর ফিল্টারগুলি ধারাবাহিকভাবে প্রয়োগ করার জন্য)।

সম্ভবত এখন আপনি দেখতে শুরু করতে পারেন যে ডিডাব্লুটি হয়ে গেছে এমন চিত্রের নিম্ন-নিচু, লোহাই, হাইলো, হাই উচ্চ অংশটি কোথা থেকে এসেছে। তবুও, দয়া করে নোট করুন যে একটি চিত্র ইতিমধ্যে দুটি মাত্রিক (সম্ভবত এটি কিছু সময় বিভ্রান্ত করছে)। অন্য কথায়, আপনাকে অবশ্যই এক্স অক্ষের জন্য নিম্ন-উচ্চ স্থানীয় ফ্রিকোয়েন্সি এবং ওয়াই অক্ষের জন্য একই রেঞ্জগুলি অর্জন করতে হবে (এই কারণেই প্রতি অক্ষের জন্য দুটি নিম্ন এবং দুটি উচ্চ রয়েছে)

এবং একটি অ্যালগরিদম যা ব্যবহার করে আমি 2 ডি হারের জন্য কোড লিখতে পারি?

প্রথম নীতিগুলি থেকে আপনার নিজের এটি কোড করার চেষ্টা করতে হবে যাতে আপনি পুরো প্রক্রিয়াটি বুঝতে পারেন। কোড তৈরির টুকরোটি পাওয়া খুব সহজ যা আপনি যা খুঁজছেন তা করবে তবে আমি নিশ্চিত নই যে এটি আপনাকে দীর্ঘমেয়াদে সত্যিই সহায়তা করবে help

আমি এখানে ভুল হতে পারি তবে আমি মনে করি ডিডাব্লুটি এবং ডিসিটি সংক্ষেপণের কৌশল কারণ যখন ডিডাব্লুটি বা ডিসিটি তাদের উপর সঞ্চালিত হয় তখন চিত্রের আকার হ্রাস পায়

এখানেই ফুরিয়ার ট্রান্সফর্মের ক্ষেত্রে ডিডাব্লুটিটিকে ভাবতে সত্যই "অর্থ প্রদান করে"। নিম্নলিখিত কারণে:

ফুরিয়ার ট্রান্সফর্ম (এবং অবশ্যই এটির পাশাপাশি ডিসিটি), আপনি অনেকগুলি নমুনা (সময়ের ডোমেনে) ওয়ান (জটিল) সহগ (ফ্রিকোয়েন্সি ডোমেনে) তে রূপান্তর করেন। এর কারণ হল, আপনি বিভিন্ন সাইনোসয়েড এবং কোসিনোসয়েডগুলি তৈরি করেন এবং তারপরে আপনি এগুলি আপনার সংকেত দিয়ে গুন করেন এবং সেই পণ্যের গড় অর্জন করেন। সুতরাং, আপনি জানেন যে একটি একক গুণাগুণযুক্ত আক আপনার সিগন্যালে কিছু ফ্রিকোয়েন্সি (কে) এর সাইনোসয়েডের একটি আকারযুক্ত সংস্করণ উপস্থাপন করে।

এখন, যদি আপনি তরঙ্গলেটের কয়েকটি কার্যকারিতা দেখেন তবে আপনি খেয়াল করবেন যে সেগুলি সাধারণ সাইনোসয়েডগুলির চেয়ে কিছুটা জটিল। উদাহরণস্বরূপ, হাই পাস হার ফিল্টারটির ফুরিয়ার ট্রান্সফর্মটি বিবেচনা করুন ... উচ্চ পাসের হার ফিল্টারটি বর্গাকার তরঙ্গের মতো দেখাচ্ছে, যেমন এটিতে ধারালো প্রান্ত রয়েছে (তীক্ষ্ণ ট্রানজিশন) ... SHARP EDGES তৈরি করতে কী লাগে? .. ... অনেকগুলি, বিভিন্ন রকম সাইনোসয়েড এবং সহ-সাইনোসয়েড (!)

সুতরাং, তরঙ্গপত্রগুলি ব্যবহার করে আপনার সিগন্যাল / চিত্রের প্রতিনিধিত্ব করলে এটি একটি ডিসিটির সাইনোসয়েডগুলির সাথে প্রতিনিধিত্ব করার চেয়ে আপনার আরও বেশি স্থান বাঁচায় কারণ তরঙ্গলেটের সহগের এক সেট আরও বেশি ডিসিটি উপাদানগুলিকে উপস্থাপন করে। (একটি সামান্য আরও উন্নত তবে সম্পর্কিত বিষয় যা এটি এইভাবে ম্যাচ ফিল্টারিং কেন এটি কাজ করে তা বুঝতে আপনার পক্ষে সহায়ক হতে পারে )।

দুটি ভাল অনলাইন লিঙ্ক (আমার মতে কমপক্ষে :-)) হ'ল : http://facchool.gvsu.edu/aboufade/web/wavelets/tutorials.htm এবং; http://disp.ee.ntu.edu.tw/tutorial/WaveletTutorial.pdf

ব্যক্তিগতভাবে আমি নিম্নলিখিত বইগুলি খুব সহায়ক পেয়েছি: http://www.amazon.com/A-Wavelet-Tour-Signal-Processing/dp/0124666051 (ম্যালাট দ্বারা) এবং; http://www.amazon.com/Wavelet-Filter-Banks-Gilbert-Strang/dp/0961408871/ref=pd_sim_sbs_b_3 (গিলবার্ট স্ট্র্যাং দ্বারা)

এই দুটিই বিষয়টিতে একেবারে উজ্জ্বল বই।

আশা করি এটা কাজে লাগবে

(দুঃখিত, আমি কেবল লক্ষ্য করেছি যে এই উত্তরটি খুব বেশি দীর্ঘ চলতে পারে: - /)


আমি উত্তেজনাপূর্ণ যে আপনি জবাব দিয়েছেন W
ব্যবহারকারী 1320483

ডিডাব্লুটি সম্পাদন করার জন্য কোডটি লেখার অর্থ আমার কাছে অনেক বেশি Please
ব্যবহারকারী 1320483

আপনার কোডে দুটি জিনিস নোট করতে হবে ক) অনুগ্রহ করার দ্বিমাত্রিক সংস্করণটি পর্যালোচনা করুন (এটি এই ক্ষেত্রে এর চেয়ে সহজতর কিছু পায় না) এবং খ) দয়া করে নোট করুন যে আপনার "চিত্র" সহগের একটি সেট যা সম্ভবত খুব ছোট বা খুব বড় এবং যে কোনও ক্ষেত্রে 255 রঙের সাধারণ গতিশীল পরিসরের বাইরে। অতএব, আপনাকে আপনার সহগের পরিধিটি খুঁজে বের করতে হবে এবং এটি 0,255 এর ব্যবধানে স্কেল করতে হবে। আপনি কি কেবল পচে যাওয়ার এক স্তরের জন্য যাচ্ছেন?
এ_এ

ক) দয়া করে কনভলিউশনের দ্বিমাত্রিক সংস্করণটি পর্যালোচনা করুন (এটি এই ক্ষেত্রে এর চেয়ে সহজতর কিছু পায় না) আপনি এর দ্বারা কী বোঝাতে চেয়েছেন তা আমি নিশ্চিত নই। "চিত্র" সহগের একটি সেট যা খুব ছোট বা খুব বড় হতে পারে এবং 255 রঙের সাধারণ গতিশীল পরিসরের বাইরে কোনও অবস্থাতেই এর অর্থ হ'ল আমাকে যুক্ত করার পরে মানটি 255 ছাড়িয়ে যায় কিনা এবং এটি 0 থেকে শুরু হয় কিনা তা পরীক্ষা করে দেখতে হবে? আপনি কি কেবল পচে যাওয়ার এক স্তরের জন্য যাচ্ছেন? হ্যাঁ আপনাকে অনেক ধন্যবাদ
ব্যবহারকারী 1320483

আমি (ক) বলতে যা বোঝাতে চাইছি তা হ'ল আপনি যদি হর ফিল্টারগুলি প্রয়োগ করতে চান (উপরের উত্তর অনুসারে) আপনি কীভাবে কনভলশন অপারেশনের মাধ্যমে এটি সম্পন্ন হয়েছে তা পর্যালোচনা করতে হবে এবং হার ফিল্টারগুলির ক্ষেত্রে এটি খুব সহজ। হ্যাঁ আপনার সহগগুলি 0-255 রেঞ্জের মধ্যে তাদের "দেখতে" সক্ষম করতে স্বাভাবিক করতে হবে। আরজিবি হিসাবে যতটা উদ্বিগ্ন, দয়া করে গ্রেস্কেল চিত্রগুলিতে (কেবল একটি মান) ফোকাস করুন। আপনাকে প্রথমে এটি বুঝতে হবে যে এটি করার দরকার এবং তা করা উচিত। "কোড" সন্ধানে দীর্ঘমেয়াদে আরও বেশি সময় ব্যয় হতে চলেছে।
এ_এ

8

আমি @ এ_এ এর উত্তর দেওয়ার আগে এটি লিখতে শুরু করেছি , তবে উত্তরটি দুর্দান্ত। তবুও আমি আশা করি নিম্নলিখিতগুলি আপনার বোধগম্যতায় কিছুটা যুক্ত হতে পারে।

তরঙ্গপত্র সম্পর্কে আলোচনা এবং তাই সিগন্যালগুলির ভিত্তি পচে যাওয়া সম্পর্কে সাধারণ আলোচনার মধ্যে পড়ে। এর মাধ্যমে, এর অর্থ আমরা আমাদের সিগন্যাল represent কে কিছু ভিত্তির ম্যাট্রিক্স, , এবং ভেক্টর বিকল্প ভিত্তিতে (ভিত্তি পচন), । এটি হ'ল: basis বেস ম্যাট্রিক্স typically সাধারণত একটি orthonormal ম্যাট্রিক্স (যেমন বিচ্ছিন্ন ফুওরি ম্যাট্রিক্স, হার ওয়েভলেট ম্যাট্রিক্স), তবে প্রয়োজন হবেনা - গবেষণার পুরো ক্ষেত্রগুলি ওভার-সম্পূর্ণ অভিধানগুলিতে সংক্রামিত সংকেতগুলির দিকে তাকিয়ে থাকে, যার অর্থ একটিএক্সএইচএক্স~

এক্স=এইচএক্স~
এইচএইচ এটির চেয়ে লম্বা প্রশস্ত (উদাহরণস্বরূপ সর্বনিম্ন এল 1-আদর্শ অ্যালগরিদমের মাধ্যমে)।

সিগন্যালের ভিত্তি পচনের পিছনে ধারণাটি হ'ল বিকল্প ভিত্তিতে সিগন্যালটি আরও ভাল উপায়ে উপস্থাপন করা যেতে পারে । দ্বারা ভাল , আমরা বলতে চাচ্ছি যে সংকেত একরকম আরো প্রক্রিয়াকরণ এক্তিয়ারভুক্ত, অথবা বুঝতে, বা যাই হোক না কেন - এটি সত্যিই কোন ব্যাপার না।

লক্ষ্য করার মতো বিষয়টি হ'ল, বিশেষত অরথনরমাল ট্রান্সফর্মগুলির সাথে, আপনার সিগন্যালটি যে কোনও ভিত্তিতেই থাকুক এখনও আপনার সিগন্যাল You আপনার কোনও ভিত্তিকে সঠিক ডোমেন বলে ভাবা উচিত নয় (আমি সাধারণ বিবেচনায় ভিত্তিতে ডোমেন ব্যবহার করি) ।

এখন, বিভিন্ন ঘাঁটির বিভিন্ন বৈশিষ্ট্য রয়েছে। আমি নিশ্চিত যে ফুরিয়ার ডোমেন এবং সময় ডোমেনের মধ্যে দরকারী সম্পর্কের বর্ণনা দেওয়ার সমঝোতা তত্ত্বটি সম্পর্কে আপনি ভাল জানেন aware এটি ফুরিয়ার ডোমেনকে সময় ডোমেন সমঝোতা ক্রিয়াকলাপ সম্পাদনের জন্য দরকারী করে তোলে।

সাধারণভাবে সময় (বা পিক্সেল) ডোমেনটিকে দুর্দান্ত সময় (বা স্থানিক) রেজোলিউশন এবং খারাপ ফ্রিকোয়েন্সি রেজোলিউশন হিসাবে বিবেচনা করা যেতে পারে। বিপরীতভাবে, ফুরিয়ার ডোমেনটি দুর্দান্ত ফ্রিকোয়েন্সি রেজোলিউশন এবং খারাপ সময় (বা স্থানিক) রেজোলিউশন হিসাবে বিবেচিত হতে পারে।

তরঙ্গপত্র বেসগুলি উপরের দুটি মাঝখানে কোথাও ফিট করে। তাদের ভাল ফ্রিকোয়েন্সি রেজোলিউশন এবং ভাল সময় বা স্থানিক রেজোলিউশন থাকে। তরঙ্গলেখার রূপান্তরের একটি সম্পত্তি হ'ল প্রাকৃতিক চিত্রগুলির ভাল স্পার্সিফিকেশন। এর মাধ্যমে, আমি বলতে চাইছি যে চিত্রটি থেকে শক্তিটি কয়েকটি বড় সহগ এবং অনেকগুলি ছোট সহগতে সংকুচিত হয়েছে। এর অর্থ সিগন্যালের বেশিরভাগ মুখ্য তথ্য অপেক্ষাকৃত ছোট মানগুলির দ্বারা উপস্থাপিত হয়। এটি সংকোচনের সারমর্ম।

বিভিন্ন ওয়েভলেটগুলির বিভিন্ন বৈশিষ্ট্য রয়েছে। @ এ_এ থেকে উল্লেখগুলি ছাড়াও, আমি ডিটিসিডব্লিউটি-র এই আইইইই টিউটোরিয়ালটিও সুপারিশ করি। টিউটোরিয়ালটির কেন্দ্রবিন্দু ওয়েভলেট রূপান্তরের প্রতি লক্ষ্য নেই , তবে আমি এটির সুপারিশ করার কারণটি এটি ডিডাব্লুটি সম্পর্কিত সমস্যাগুলি এবং কীভাবে সেগুলি এড়াতে পারে সে সম্পর্কে উপস্থাপন করার কারণ কারণ (আমি বলব এটির জন্য একটি প্রাথমিক বোঝার প্রয়োজন প্রথম যদিও)। এটি ফুওরির রূপান্তর এবং এর পরেরটির কেন সুন্দর বৈশিষ্ট্য রয়েছে তা বোঝার সাথে ওয়েভলেটগুলির বোঝাপড়ার সাথে এটি সত্যই একত্রিত হয়।

আপনি যদি হর ট্রান্সফর্মের বিষয়ে আরও কিছু রেফারেন্স কোড চান, তবে আমার প্রাক্তন সুপারভাইজারের তার ওয়েব পৃষ্ঠায় কিছু মাতলব উদাহরণ রয়েছে ("4F8 চিত্র কোডিং কোর্স", HAAR2D.M এবং IHAAR2D.M এর অধীনে জিপ ফাইল)। এগুলি যদিও শেখানোর খুব উদাহরণ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.