Wednesday 9 August 2017

Rasio to moving average method examples


Apakah Rata-rata Bergerak Adaptif Memimpin Untuk Hasil yang Lebih Baik Rata-rata bergerak adalah alat favorit pedagang aktif. Namun, ketika pasar berkonsolidasi, indikator ini menyebabkan banyak perdagangan whipsaw, yang menghasilkan serangkaian kemenangan dan kerugian kecil yang membuat frustrasi. Analis telah menghabiskan waktu puluhan tahun untuk memperbaiki rata-rata bergerak sederhana. Pada artikel ini, kita melihat upaya ini dan menemukan bahwa pencarian mereka telah menghasilkan alat perdagangan yang bermanfaat. (Untuk membaca latar belakang pada rata-rata bergerak sederhana, lihat Simple Moving Averages Membuat Trends Stand Out.) Pro dan Kontra Pergerakan Rata-rata Keuntungan dan kerugian dari rata-rata bergerak dirangkum oleh Robert Edwards dan John Magee dalam edisi pertama Analisis Teknis untuk Tren Saham Ketika mereka mengatakannya dan, pada tahun 1941 kembali kami dengan senang hati membuat penemuan itu (walaupun banyak lainnya berhasil melakukannya sebelumnya) bahwa dengan rata-rata data untuk jumlah hari yang disebutkan dapat menghasilkan semacam garis tren otomatis yang pasti akan menafsirkan perubahan Trend Sepertinya sangat bagus untuk menjadi kenyataan. Sebenarnya, itu terlalu bagus untuk menjadi kenyataan. Dengan kerugian yang melebihi keuntungan, Edwards dan Magee dengan cepat meninggalkan impian mereka untuk berdagang dari bungalo pantai. Tapi 60 tahun setelah mereka menulis kata-kata itu, yang lain tetap berusaha menemukan alat sederhana yang dengan mudah akan mengantarkan kekayaan pasar. Simple Moving Averages Untuk menghitung moving average yang sederhana. Tambahkan harga untuk periode waktu yang diinginkan dan bagi dengan jumlah periode yang dipilih. Menemukan rata-rata pergerakan lima hari akan membutuhkan penjumlahan lima harga penutupan terbaru dan dibagi dengan lima. Jika penutupan terakhir berada di atas rata-rata bergerak, saham akan dianggap berada dalam tren naik. Downtrends didefinisikan oleh harga perdagangan di bawah rata-rata bergerak. (Untuk informasi lebih lanjut, lihat tutorial Moving Averages). Properti yang mendefinisikan tren ini memungkinkan pergerakan rata-rata menghasilkan sinyal perdagangan. Dalam aplikasi yang paling sederhana, para pedagang membeli ketika harga bergerak di atas rata-rata bergerak dan menjual saat harga turun di bawah garis itu. Pendekatan seperti ini dijamin menempatkan pedagang di sisi kanan setiap perdagangan yang signifikan. Sayangnya, saat merapikan data, rata-rata bergerak akan tertinggal dari aksi pasar dan trader hampir selalu mengembalikan sebagian besar keuntungan mereka bahkan pada perdagangan terbesar sekalipun. Rata-rata Pindah Eksponensial Analis tampaknya menyukai gagasan tentang rata-rata bergerak dan telah menghabiskan bertahun-tahun mencoba untuk mengurangi masalah yang terkait dengan lag ini. Salah satu inovasi ini adalah moving average eksponensial (EMA). Pendekatan ini memberikan bobot yang relatif lebih tinggi terhadap data terakhir, dan akibatnya ia mendekati tindakan harga daripada rata-rata pergerakan sederhana. Rumus untuk menghitung rata-rata pergerakan eksponensial adalah: EMA (Weight Close) ((1-Bobot) EMAy) Dimana: Bobot adalah konstanta pemulusan yang dipilih oleh analis EMAy adalah rata-rata pergerakan eksponensial dari kemarin Nilai pembobotan umum adalah 0,188, yang Mendekati rata-rata pergerakan sederhana 20 hari. Lain adalah 0,10, yang kira-kira memiliki rata-rata pergerakan 10 hari. Meskipun mengurangi lag, moving average eksponensial gagal mengatasi masalah lain dengan moving averages, yang penggunaannya untuk sinyal perdagangan akan menyebabkan sejumlah besar perdagangan rugi. Dalam Konsep Baru dalam Sistem Perdagangan Teknis. Welles Wilder memperkirakan bahwa pasar hanya tren seperempat waktu. Hingga 75 tindakan perdagangan dibatasi pada kisaran yang sempit, ketika sinyal beli dan beli rata-rata bergerak akan berulang kali dihasilkan karena harga bergerak cepat di atas dan di bawah rata-rata bergerak. Untuk mengatasi masalah ini, beberapa analis menyarankan faktor pembobotan perhitungan EMA yang bervariasi. (Untuk lebih lanjut, lihat Bagaimana cara moving averages yang digunakan dalam trading) Mengadaptasi Moving Averages to Market Action Salah satu metode untuk mengatasi kerugian moving averages adalah dengan mengalikan faktor pembobotan dengan rasio volatilitas. Melakukan hal ini berarti bahwa rata-rata bergerak akan jauh dari harga saat ini di pasar yang bergejolak. Ini akan memungkinkan para pemenang lari. Seiring tren berakhir dan harga berkonsolidasi. Rata bergerak akan bergerak mendekati aksi pasar saat ini dan, secara teori, memungkinkan pedagang untuk mempertahankan sebagian besar keuntungan yang tertangkap selama tren berlangsung. Dalam prakteknya, rasio volatilitas dapat menjadi indikator seperti Bollinger Bandwidth, yang mengukur jarak antara Bollinger Bands yang terkenal. (Untuk informasi lebih lanjut mengenai indikator ini, lihat Dasar-Dasar Bollinger Bands.) Perry Kaufman menyarankan untuk mengganti variabel bobot dalam formula EMA dengan konstan berdasarkan rasio efisiensi (ER) dalam bukunya, New Trading Systems and Methods. Indikator ini dirancang untuk mengukur kekuatan tren, yang didefinisikan dalam kisaran dari -1,0 sampai 1,0. Hal ini dihitung dengan rumus sederhana: ER (perubahan harga total untuk periode) (jumlah perubahan harga mutlak untuk setiap batang) Perhatikan saham yang memiliki rentang lima poin setiap hari, dan pada akhir lima hari telah memperoleh total Dari 15 poin Ini akan menghasilkan ER sebesar 0,67 (15 poin ke atas dibagi dengan kisaran 25-titik total). Jika saham ini turun 15 poin, ER akan menjadi -0,67. (Untuk saran perdagangan lebih lanjut dari Perry Kaufman, baca Losing To Win yang menguraikan strategi untuk mengatasi kerugian perdagangan.) Prinsip efisiensi tren didasarkan pada seberapa banyak pergerakan arah (atau tren) yang Anda dapatkan per unit pergerakan harga di atas Periode waktu yang ditentukan ER dari 1,0 menunjukkan bahwa saham berada dalam uptrend yang sempurna -1,0 merupakan tren turun yang sempurna. Secara praktis, ekstrem jarang tercapai. Untuk menerapkan indikator ini untuk menemukan moving average moving average (AMA), trader harus menghitung bobotnya dengan rumus berikut, agak kompleks: C (ER (SCF SCS)) SCS 2 Dimana: SCF adalah konstanta eksponensial untuk yang tercepat EMA yang diijinkan (biasanya 2) SCS adalah konstanta eksponensial untuk EMA yang paling lambat yang diijinkan (seringkali 30) ER adalah rasio efisiensi yang disebutkan di atas Nilai C kemudian digunakan dalam formula EMA dan bukan variabel bobot yang lebih sederhana. Meski sulit dihitung dengan tangan, rata-rata pergerakan adaptif disertakan sebagai pilihan di hampir semua paket perangkat lunak perdagangan. (Untuk informasi lebih lanjut tentang EMA, baca Exploring The Exponentially Weighted Moving Average.) Contoh rata-rata pergerakan sederhana (garis merah), moving average eksponensial (garis biru) dan moving average moving average (garis hijau) ditunjukkan pada Gambar 1. Gambar 1: AMA berwarna hijau dan menunjukkan tingkat perataan yang paling tinggi dalam aksi jarak dekat yang terlihat di sisi kanan grafik ini. Dalam kebanyakan kasus, rata-rata bergerak eksponensial, yang ditunjukkan sebagai garis biru, paling dekat dengan aksi harga. Rata-rata bergerak sederhana ditunjukkan sebagai garis merah. Tiga rata-rata bergerak yang ditunjukkan pada gambar sangat rentan terhadap perdagangan whipsaw pada berbagai waktu. Kekurangan pada moving averages sejauh ini tidak mungkin dihilangkan. Kesimpulan Robert Colby menguji ratusan alat analisis teknis dalam The Encyclopedia of Technical Market Indicators. Dia menyimpulkan, Meskipun rata-rata pergerakan adaptif adalah ide baru yang menarik dengan daya tarik intelektual yang cukup besar, tes pendahuluan kami gagal menunjukkan keuntungan praktis nyata pada metode perataan tren yang lebih kompleks ini. Ini tidak berarti pedagang harus mengabaikan gagasan itu. AMA dapat dikombinasikan dengan indikator lain untuk mengembangkan sistem perdagangan yang menguntungkan. (Untuk informasi lebih lanjut tentang topik ini, baca Discovering Keltner Channels And The Chaikin Oscillator.) ER dapat digunakan sebagai indikator tren yang berdiri sendiri untuk menemukan peluang perdagangan yang paling menguntungkan. Sebagai contoh, rasio di atas 0,30 mengindikasikan tren kenaikan yang kuat dan merupakan pembelian potensial. Sebagai alternatif, karena volatilitas bergerak dalam siklus, saham dengan rasio efisiensi terendah dapat diawasi sebagai peluang pelarian. Total nilai pasar dolar dari seluruh saham perusahaan yang beredar. Kapitalisasi pasar dihitung dengan cara mengalikan. Frexit pendek untuk quotFrench exitquot adalah spinoff Prancis dari istilah Brexit, yang muncul saat Inggris memilih. Perintah ditempatkan dengan broker yang menggabungkan fitur stop order dengan pesanan limit. Perintah stop-limit akan. Ronde pembiayaan dimana investor membeli saham dari perusahaan dengan valuasi lebih rendah daripada valuasi yang ditempatkan pada. Teori ekonomi tentang pengeluaran total dalam perekonomian dan pengaruhnya terhadap output dan inflasi. Ekonomi Keynesian dikembangkan. Kepemilikan aset dalam portofolio. Investasi portofolio dilakukan dengan harapan menghasilkan laba di atasnya. Situs ini menunjukkan kepada Anda bagaimana membuat video DivX yang cemerlang (dari TV, DVB, DV, DVD dll) untuk tujuan pengarsipan ATAU cara mengurangi ukuran file untuk menghasilkan rekaman DivX yang bagus namun kecil. Jika Anda berurusan dengan DivX, situs ini menampilkan beberapa statistik video dan eksperimen, yang mungkin menarik bagi semua penerbit video dan penggemar DivX. Sebagian besar situs ini membahas interlacingdeinterlacing yang mengenalkan beberapa masalah interlace yang paling menjijikkan seperti ini: Silakan juga mengunjungi situs saya yang lain eBook Download ebooks-download (dengan program afiliasi) Tiny Google Startpage untuk Browser Anda tigoo Matrix Reloaded Explained matrix-explain Free Tips Kencan 100-dating-tips File Freeware Saya 1-4a Apakah Anda pikir Anda merekam 25 frame per detik saat Anda membuat film dengan camcorder digital Anda Camcorder digital Anda melakukan hal berikut: Mencatat 50 gambar per detik, mencampuradukkan setiap 2 gambar berturut-turut ( Dengan setengah tinggi) menjadi 1 bingkai. Sebenarnya, Anda tidak menyebut mereka gambar, tapi bidang. Jadi 2 bidang dicampur menjadi 1 frame. Pencampuran ini disebut interlacing. Berikut adalah contoh dari apa yang camcorder digital Anda lakukan: Capture field1 (menangkap setengah tinggi, atau tinggi penuh dan kemudian mengubah ukurannya ke bawah): Mereka terlihat sangat mirip. Tapi tunggu, mereka berbeda. Anda bisa melihat dengan membandingkan posisi jempol dan tombol keyboard. Sekarang kedua bidang ini dicampur (interlaced) ke Frame1 (tinggi penuh): Apa yang Anda lihat di atas adalah bingkai yang persis seperti pada tape camcorder Anda. Berikut adalah tampilan yang diperbesar dari Frame 1 di atas: Seperti yang dapat Anda lihat dengan jelas di atas, Frame1 terdiri dari Field1 dan Field2. Cara tampilannya disebut gigi gergaji tipe distorsi gigi tikus menyisir gerigi garis interlaced. Dengan kata lain: Bingkai tunggal terdiri dari 2 tangkapan dari 2 momen berbeda pada waktunya. Field1Time1, Field2Time2. Lihat bingkai di bawah ini. Ini adalah capture langsung dari MTVs Digital Video Broadcasting: Adegan di atas terdiri dari 2 scene yang sama sekali berbeda karena ini adalah frame dimana ada perubahan dari scene1 ke scene2. Scene2 (Ini adalah penampilan Britney Spears di MTV Video Music Awards 2001) Karena saat ini intermix (1 frametime1time2) tidak mungkin untuk: deinterlace sebuah frame tetap menjaga kualitas penuh (semua informasi gambar). Mustahil. Anda harus mengubah setidaknya satu dari poin-poin itu. Kecuali, saat tidak ada gerak. Pada layar komputer rekaman interlaced menjengkelkan untuk ditonton karena garis-garis itu benar-benar mengganggu. Terutama di adegan di mana gerakan dari kiri ke kanan (kanan ke kiri) Anda melihat interlacing, seperti pada contoh ini: Teks di bagian bawah gulungan dari kanan ke kiri dan dengan demikian membuat Anda memiliki gigi tikus karena bingkai ini terdiri dari 2 foto dari Waktu, seperti yang dijelaskan di atas. Gigi tikus karena gerakan naik-turun. Ini adalah adegan dari klip musik quotAnywherequot dari pemain 112. Di sana ada garis interlace gerak di sana, tapi ini adalah bingkai di mana ada kilatan pendek, sehingga ada perbedaan dari satu bidang ke bidang lainnya. Untuk membuat segalanya semakin rumit, beberapa camcorder digital memiliki sesuatu yang bisa Anda sebut quotcolor interlacingquot. Meskipun istilah ini mungkin agak tidak tepat untuk menggambarkan sumber artefak, cukup deskriptif untuk hasil akhirnya. Tapi bahkan setelah deinterlacing beberapa merah dan beberapa piksel hijau tinggal di mana bidang terakhir. Berikut adalah contoh lain (setelah deinterlacing): Beberapa camcorder memadukan warna yang berbeda ke dalam bidang yang berbeda, atau menggunakan CCD yang bereaksi lebih lambat, sehingga terkadang Anda mendapatkan pola warna aneh ini. Selain itu ada camcorder dengan bugquotware yang diketahui quoreardware yang menghasilkan warna halo atau warna perdarahan atau warna mengolesi (contoh di atas difilmkan dengan Sony PC110, yang memiliki ciri khas quotolor behaviourquot ini). Selanjutnya ada sesuatu seperti warna unsharpness yang dihasilkan dari kenyataan, bahwa resolusi warna lebih rendah dari resolusi gambar, artinya misalnya 4 pixel berbagi 1 warna. Selanjutnya ada penyimpangan warna yang diperkenalkan oleh sistem lensa camcorder. Selanjutnya bisa ada codec DV yang rusak, yang memecahkan kode buggy. Anda bisa mencoba codec DV Mainconcepts () yang memiliki reputasi tinggi, jika Anda tidak mempercayai codec Anda sendiri. Bahkan ada yang bisa Anda sebut kecekatan interlacing. Ini adalah penangkapan dari klip musik quotSexyquot yang dilakukan oleh quotFrench Affairquot dari saluran TV Tango TV (dari Luxembourg). Klip musik ini ditayangkan secara progresif. Tidak ada gigi tikus mana pun di klip ini. Namun Anda melihat quotbrightness interlacing linesquot. Mungkin klip ini direkam interlaced dan kemudian ditransformasikan menjadi progresif dan ini adalah artefak deinterlacing kiri. Karena meski dengan metode yang dijelaskan di situs ini sulit mendapatkan hasil yang sempurna. Tidak, bukan Kylie Minogue dan dokter gigi gaynya. Kylie yang cantik dan Jason Donovan yang cantik tampil secara khusus untuk Anda pada tahun 1988 di quotTop of the Popsquot Seperti yang Anda lihat ada beberapa artefak deinterlacing. Namun, Anda tidak akan memperhatikannya saat bermain. Apakah interlacing bug Sayangnya ini adalah cara camcorder digital dan rekaman VCR digital dan penyiaran digital dilakukan. Satu detik dari sebuah film terdiri dari 25 frame 50 gambar interlaced. Itu berarti ketika Anda mengganti gambar film untuk komputer atau proyektor atau monitor TFT Anda, dan Anda ingin memainkannya di pesawat TV standar, perangkat lunak Anda (atau perangkat keras Anda) harus saling menghubunginya lagi. Contoh: Ada 2 macam DVD: Beberapa memiliki format interlaced (seperti contoh di atas) dan beberapa ditransfer dari film ke DVD secara langsung, sehingga memiliki 25 frame progresif yang dikodekan. Ini murni keputusan perusahaan DVD. Karena TV mengharapkan Anda memberi mereka makan dengan 50 gambar per detik (apakah itu dari perekam VHS analog lama Anda atau dari antena Anda atau dari pemutar DVD Anda) pemutar DVD perlu mengubah 25 frame progresif menjadi 50 gambar dan mengirimnya ke Set TV. Itu berarti mereka harus mendapatkan interlaced mereka (well, itu tidak interlacing dalam arti aslinya, tapi Anda menghasilkan 50 gambar dari 25 gambar) daripada membiarkan TV menampilkan 25 fps asli. Baru-baru ini Panasonic memperkenalkan salah satu perangkat TV pertama yang bisa menerima frame progresif dari pemutar DVD. Jadi Anda memerlukan 2 hal: DVD player khusus, yang menekan konversi 25p-gt50p dan TV khusus ini. Panasonic TX 32ph40d mampu menerima frame progresif (Field1 dan 2 adalah setengah tinggi tentu saja, tapi saya telah mengubah ukurannya untuk membuatnya sebanding) Blending akan melakukan ini pada mereka: Harap dicatat, bahwa tidak hanya area dimana pergerakan terjadi Berubah melalui campuran, tapi juga bodi utama hijau. Jika tidak ada perubahan dari bidang ke lapangan, maka quotDeinterlacing oleh Blendingquot memberi Anda sedikit kabur. Dengan kata lain: Deinterlacing oleh pencampuran (yang merupakan salah satu cara yang paling sering dilakukan untuk deinterlace) similasikan gerak lancar dengan mengaburkan dan quotmushesquot 2 gambar berturut-turut bersamaan. Jadi sebenarnya Anda mengurangi kualitas hingga seperempat dari kualitas yang mungkin. Anda bisa menyebutnya: Tunjukkan kedua bidang per frame. Ini pada dasarnya tidak melakukan apapun pada frame, sehingga membuat Anda dengan gigi tikus tapi dengan resolusi penuh, yang bagus saat deinterlacing TIDAK dibutuhkan. Anda bisa menyebutnya: Dont berbaur semuanya tapi hanya gigi tikus sendiri. Hal ini dapat dilakukan dengan membandingkan frame menurut waktu atau dengan spaceposition. Ini memberi Anda hasil bagus di adegan sepi dimana tidak banyak yang bergerak, karena tidak ada yang kabur saat itu. Anda bisa menyebutnya: Ini menurut saya merupakan ide yang jauh lebih baik daripada Blending, tapi sayangnya saya tidak tahu filter atau program apa pun yang bisa melakukannya. Idenya adalah: Blur gigi tikus bila dibutuhkan, bukannya mencampur (blending) mereka dengan bidang lainnya. Dengan cara ini Anda akan mendapatkan tampilan yang lebih mirip film. Seperti yang Anda lihat kabur semakin kuat ke arah posisi lama. Anda bahkan bisa menambahkan efek seperti ini (Motion blur) Gerakan blur ini dilakukan saat ini saat Anda perlu mengonversi rekaman 50fps menjadi cuplikan 25fps (untuk membuat rekaman camcorder 50fps terlihat lebih seperti film). Atau untuk membuat komik dan rendering (seperti quotMonsters Incquot) terlihat lebih seperti film. Anda bisa menyebutnya: Anda membuang setiap baris kedua (filmnya setengah tinggi saat itu) dan kemudian mengubah ukuran gambar saat bermain. Itu sama dengan melewatkan Field2, Field4, Field6. Anda bisa menghubungi quotEven Fields Onlyquot atau quotOdd Fields Onlyquot ini. Ada beberapa hal buruk tentang itu. Anda kehilangan setengah dari resolusi dan film menjadi semacam gagap (seperti yang disebutkan di atas). Itu berarti, bahwa itu tidak bermain semulus mungkin. Anda bisa menyebutnya: Ada juga cara ini: Menampilkan setiap bidang (jadi Anda tidak kehilangan informasi apapun), satu demi satu (tanpa interlace) tapi dengan 50 fps. Dengan demikian setiap frame interlaced terbagi menjadi 2 frame (2 bidang sebelumnya) setengah tinggi. Seperti yang Anda lihat, Anda tidak akan kehilangan bidang apapun, karena keduanya ditampilkan, satu demi satu. Terkadang quotBobquot juga disebut quotProgressive Scanquot. Namun karena Bob tidak menganalisis area (Bob Bodoh) atau perbedaan antara bidang ini adalah sinonim yang tidak tepat. Silakan lihat contoh berikut untuk quotrealquot quotProgressive Scanquot. Anda bisa menyebutnya: Menganalisis dua bidang dan deinterlace hanya bagian yang perlu. Perbedaan utama pada quotArea basedquot adalah bahwa film ini memberi Anda film 50fps dan bukan film 25fps, sehingga membuat Anda memiliki fluiditas gerak yang sempurna. Mengatakannya lebih akademis: Resolusi temporal dan vertikal yang tinggi. Ini adalah metode pilihan saya. Anda bisa mencapainya dengan freeware. Baca kelebihan dan kekurangan di situs ini. Anda bisa menyebutnya: Menganalisis pergerakan benda dalam sebuah adegan, sedangkan scene terdiri dari banyak frame. Dengan kata lain: Pelacakan setiap objek yang bergerak di sekitar tempat kejadian. Dengan demikian secara efektif menganalisis sekelompok frame berturut-turut, bukan hanya bingkai tunggal. Ini adalah solusi terbaik, tapi sayangnya hanya untuk perusahaan yang bisa membayar mahal solusi hardware. TIDAK PERNAH TERBATAS: Jika Anda melihat hanya satu bingkai tunggal, bukan keseluruhan film untuk menunjukkan kualitas metode deinterlacing apapun, perhatikan. Anda tidak akan tahu seberapa bagus atau buruknya itu sebenarnya. Karena Anda tidak tahu seberapa lancar pemutaran film dan berapa banyak struktur halus yang hilang dan apakah metode deinterlacing masih gagal kadang-kadang atau meninggalkan garis interlaced. Sebagai gantinya, bandingkan metode deinterlacing dengan menonton satu menit atau lebih dari kedua film dengan adegan bergerak dan bergerak dengan baik. Seberapa cairnya Bagaimana kabur itu Berapa banyak artefak interlace yang tersisa Film fluida. Hampir semua Software Video mampu melakukannya. Video tidak perlu dikonversikan ke kolom terlebih dulu. Gambar menjadi kabur (unsharp) saat ada gerak. Tingkat kompresi tidak terlalu bagus. Bahkan di daerah yang sepi video pun menjadi kabur. Bidang Lepas Bidang Mode Tunggal Hampir semua Perangkat Lunak Video mampu melakukannya. Gambar tajam 100 film yang tidak disunting Tidak akan ada garis interlaced yang tersisa. Video tidak perlu dikonversikan ke kolom terlebih dulu. Sangat cepat, bahkan pada komputer yang lambat, karena metode hanya terdiri dari menghapus setiap baris kedua. Anda kehilangan setengah dari informasi. (Meskipun bahkan dengan setengah dari informasi itu masih jauh lebih tajam daripada pencampuran). Anda kehilangan sedikit ketajaman dalam pemandangan yang sunyi, karena setiap frame setinggi setengah dan harus ditingkatkan. Butir nampaknya lebih kasar karena berukuran ganda saat bermain. Film tidak cair (jenis gagap terus menerus). Anda perlu mengubah ukuran film saat bermain, jadi Anda memerlukan prosesor yang lebih cepat. Visibilitas artefak kompresi yang lebih besar, karena artefak tetap berukuran sama, sedangkan tinggi dipotong setengahnya. Dengan kata lain: Bila mengubah ukuran selama bermain, Anda juga dapat mengubah ukuran artefak kompresi. Video tidak perlu dikonversikan ke kolom terlebih dulu. Jika algoritma ini diprogram dengan baik, maka akan mengaburkan gigi tikus dalam gerakan cepat sambil menjaga ketajaman dalam adegan diam (tanpa gerakan) (atau bagian dari gambar). Tidak selalu menghilangkan semua garis interlaced. Terkadang menghilangkan data video yang salah. Terkadang parameter rumit itu bisa berbeda dari materi video hingga materi video. Klik gambar di bawah ini, dan beri tahu saya apa yang terbaik untuk film Anda: Film bisa menjadi tidak jelas kabur (unsharp) selama gerakan. 720x576-gt720x288 50 fps film Super fluid. Gambar tajam 100 film yang tidak disunting Tidak akan ada garis interlaced yang tersisa. Visibilitas artefak kompresi yang lebih besar, karena artefak tetap berukuran sama, sedangkan tinggi dipotong setengahnya. Dengan kata lain: Bila mengubah ukuran selama bermain, Anda juga dapat mengubah ukuran artefak kompresi. Bagaimana mencegah perubahan ukuran artifak. Melompat artefak, kebanyakan terlihat dengan logo TV (lihat contoh di bawah). Dalam adegan sepi tanpa gerakan (di mana interlace tidak masalah), Anda kehilangan sedikit ketajaman, karena setiap frame setinggi setengah dan harus ditingkatkan. Hanya sedikit program software yang bisa di deinterlace oleh bob. Anda perlu mengubah ukuran film saat bermain sehingga Anda memerlukan prosesor yang lebih cepat. Anda perlu bermain 50fps, jadi Anda memerlukan prosesor yang lebih cepat atau codec yang lebih cepat. Karena filter anti-bobbing (lihat di bawah), frame sedikit buram. Karena film tersebut harus dipecah menjadi bidang oleh Avisynth (lihat di bawah), kecepatan pengkodean film dibatasi oleh Avisynth, yang bisa sangat lambat. Ukuran file yang dihasilkan cukup besar dibanding metode lainnya. Kombinasi metode di atas SELAMA BERMAIN Dapat menghasilkan semua kelebihan metode di atas Dapat menghasilkan semua kontra dari metode di atas Karena materi dapat menghasilkan 25fps dan 50fps (beralih di antara keduanya saat bermain), metode ini hanya dapat dilakukan. Digunakan untuk menonton film daripada mengubahnya. Saya ragu, bahwa ada program yang bisa melakukannya cukup cepat. Ada perangkat lunak pemutar DVD yang bisa melakukannya, tapi saya tidak tahu apakah itu didukung oleh perangkat keras. Ada juga DScaler, tapi tidak berguna bagi saya sejak a) Saya tidak pernah bisa mendapatkannya untuk bekerja dengan 3 kartu WinTV saya b) tidak bekerja dengan rekaman film (hanya dengan film yang saat ini ditampilkan) c) sudah sebagian terintegrasi dalam WinTV d) perkembangannya sangat lambat (dihentikan) Jadi Anda ingin memberi tahu teman Anda untuk memiliki komputer dengan tenaga kuda, memasang pemain baru, memasang perangkat lunak deinterlacing dan masih hidup dengan hasil yang lebih buruk daripada deinterlacing dengan benar di tempat pertama dengan mengubah ukurannya menjadi 384x288 Atau di bawah Metode termudah. Setiap program pengeditan video dapat melakukannya, walaupun fitur ini tidak dilengkapi dengan metode kuantum. Kuota ukuran file cukup kecil. Hasilnya bisa sama persis dengan quotBlendquot, kecuali untuk heightwidth, yang membuat gambar sedikit lebih unsharp. Ini adalah cara termudah untuk deinterlace video. Contoh: Anda memiliki rekaman DV Camera khas 720x576 (interlaced) dan Anda cukup mengubah ukurannya menjadi 384x288. Mengapa 384x288 Karena: 1) 2885762, artinya, yang cepat menghitung dan kehilangan kualitas rendah. 2) 384x288 adalah 4: 3 tetapi terutama untuk alasan 3) Film yang tingginya 288 piksel dan di bawah tidak dapat saling terkait. Jadi 384x288 adalah ukuran terbesar yang memastikan Anda memiliki video dengan bingkai progresif. Kombinasi film BobWeave (Progressive Scan) 720x576-gt720x576 50 fps Super fluid movie. Gambar yang luar biasa tajam. 99 film yang tidak terhubung (99 berarti ada kemungkinan kecil bahwa gigi tikus tetap terlihat di sana-sini) Dalam pemandangan yang senyap tanpa gerakan (di mana interlacing tidak penting), Anda menyimpan resolusi penuh, sementara adegan yang bergerak menjadi cair. Anda tidak perlu bermain dengan filter bobdebob (lihat di bawah). Tidak ada ukuran yang dilakukan. Ini memberi Anda ketajaman ekstra. Melompat artefak, kebanyakan terlihat dengan logo TV (lihat contoh di bawah). Hanya sedikit software (seperti Virtualdub dan mungkin Cleaner) yang mampu deinterlace seperti ini. Anda perlu bermain 50fps, jadi Anda memerlukan prosesor yang lebih cepat atau codec yang lebih cepat. Karena film tersebut harus dipecah menjadi bidang oleh Avisynth (lihat di bawah), kecepatan pengkodean film dibatasi oleh Avisynth, yang bisa sangat lambat. Ukuran file yang dihasilkan lebih besar dari pada metode lainnya. Lihat link perbandingan ukuran file di bawah ini. 720x576-gt720x576 50 fps Peralatan perangkat keras profesional bisa menjadi sangat mahal. Seberapa mahal Anda bisa mengatakan 50000 Atau pikirkan 100000 Kemudian mantra T-E-R-A-N-E-X. Ini adalah peralatan yang digunakan untuk penyiaran profesional: Teranex. Ada solusi perangkat lunak oleh Institut Fraunhofer Jerman (ya, mereka yang menemukan mp3): HiCon 32. Karya brilian. Beberapa kartu grafis PC (misalnya NVidia) dan kartu Video (misalnya Hauppauge) telah menerapkan deinterlacing onboard. Mari kita berharap ini menjadi standar seiring berjalannya waktu. Meskipun ada tandingan di atas, deinterlacing oleh quotBobquot atau quotWeaveBobquot memberi Anda hasil yang sangat baik (hasil terbaik dari semua metode perangkat lunak yang tersedia). Alasannya sederhana: Bagaimana Anda bisa mengharapkan hasil yang bagus saat Anda mengkonversi 50 bidang per detik (50 snapshot per detik) menjadi 25 foto per detik Jika Anda tidak ingin menggunakan BobProgressive Scan, saya menyarankan untuk menggunakan Deinterlace oleh Discarding Fields, Karena cepatnya (bisa dilakukan dengan PC yang lamban) Anda bisa melakukannya dengan filter built-in Virtualdub (lihat di bawah), (bebas dan mudah dilakukan) gambar tetap sangat tajam sehingga daun sama sekali tidak ada garis interlaced yang dihasilkan. Filesizes kecil Saya telah encoded video dengan metode di atas dan pilihan yang berbeda untuk membandingkan ukuran file. Catatan: Bila perangkat lunak pengeditan video memiliki opsi quotDeinterlacequot tanpa penjelasan lebih lanjut, cukup yakin artinya quotBlendquot atau quotDiscard Fieldquot. Buka quot Example. avs quot dengan Virtualdub dan Anda akan tahu bahwa Anda memiliki film dengan bidang dan bukan bingkai. Setengah tingginya, tapi tidak ada garis interlaced. Klik di sini jika. avs Anda menghasilkan kesalahan atau tidak berhasil. Sekarang ada 3 cara bagaimana Anda bisa melanjutkan: 4a) Metode yang lebih buruk (tapi tetap bagus): Bob Pergi ke menu filter Virtualdubs dan klik Add .. quot dengan filter built-in quot Field bob quot. Tanpa filter ini film bobs (melonjak naik turun). Mengapa film bob Pilih quotquarter scanline downquot amp quotQuarter scanline upquot atau sebaliknya, tergantung pada materi video Anda. Jika Anda memilih yang salah, video Anda akan melompat naik turun bahkan lebih banyak (seperti dalam iklan Persil di bawah). Sayangnya filter anti-bob ini juga kabur sedikit. Jadi Anda bisa menambahkan Virtualdub yang ada di filter quot Sharpen quot tepat setelah kuotasi Field Bob quot dan kemudian mempertajam jumlah yang Anda suka. 4b) Metode terbaik (tapi lebih memakan waktu dengan ukuran file yang lebih besar): Progressive Scan (WeaveBob) Dapatkan filter Virtualdub berikut quotDeinterlace - Smooth quot dari situs Gunnar Thalin. Salin ke folder quotpluginsquot Virtualdub. Buka menu filter Virtualdubs dan klik Add .. quot filter ini. Anda mungkin harus memeriksa kuota kuota pesanan di dalam filter ini. Tapi ini tergantung pada sumber film Anda. 4c) Bukan metode terbaik dan bukan yang terburuk: Bob oleh Avisynth Cukup ganti avisynth script quot Example. avs quot to: Pilih rasio 4: 3 dari menu pemutar Anda. Jika pemain Anda tidak dapat memilih rasio maka Anda akan melihat film setengah ukuran (tapi tetap akan sangat cair). Beralih ke mode fullscreen. Nonaktifkan prosesproses DivX apapun. Postprocessing akan memperlambat kecepatan bermain. Bahkan dengan sedikit postprocessing film tidak akan berjalan lancar dengan CPU yang cepat. Jadi atur tingkat Mutu (level post-processing) menjadi quotMINquot. Sebenarnya sebaiknya Anda tidak menggunakan Decoder DivX standar dari DivX. Dapatkan freeware decoder suite FFDShow. Semakin cepat prosesor Anda semakin baik. Seharusnya 0,6 GHz jika tidak Anda menjatuhkan frame dan sepertinya film itu telah dikodekan dengan buruk. Saya memiliki beberapa komputer dan saya bisa menonton film di bawah ini dengan lancar dengan Athlon 650Mhz saya. Ini juga tergantung pada kecepatan kartu grafis Anda. Ya, saya tahu tangkapan ini berasal dari versi DivX lama. Tapi saya tidak akan memperbaruinya setiap kali DivX merilis versi baru. Brit. avi (5.4 MB) Bob (metode 4a) 50 fps 17 detik Codec Video: DivX 5 (berbasis kualitas: 93) Audio Codec: mp3 Direkam langsung dari siaran MTVs Digital (MPEG-2) dan dikonversi ke DivX. avi You Harus nonton film 4: 3 1) Perlu diketahui berapa cairan filmnya 2) tapi juga perhatikan bahwa logo MTV di pojok kanan atas sedikit berkilauan. Lebih banyak tentang flimmering. 3) ini bukan kualitas terbaik, karena saya menggunakan quotBobquot dan bukan quotProgressive Scanquot. 4) Perhatikan juga penari hitam di sebelah kanan, hes cukup bagus. 5) Pertunjukan Britney Spears (MTV VMA 2001) ini ditayangkan 50fps. Performa Justin Timberlakes satu tahun kemudian di MTV Video Music Awards 2002 juga ditayangkan 50fps, namun frame-frame ini secara artifisial terjalin dari 25 frame progresif, agar terlihat lebih seperti quotfilm-likequot. Interlacing terlihat pada film yang memiliki tinggi gt 288 (NTSC: gt 240). Jadi saat Anda merekam film, katakanlah, 384x288 atau lebih kecil Anda tidak akan melihat bingkai interlaced. Its praktis pencampuran. Beberapa kartu menangkap tidak menyatu tapi menjatuhkan setiap bidang kedua dengan ukuran lebih kecil atau sama dengan 288. Istilah quotHalf ImagequotquotHalf Picturequot adalah kata lain untuk quotFieldquot. The quotHalfquot berkaitan dengan fakta, bahwa resolusi setengah (misalnya 288 piksel) dari 2 bidang (setengah gambar) digabungkan ke resolusi penuh (576 piksel) di daerah yang sepi. Menurut pendapat pribadi saya PAL lebih baik daripada NTSC: Karena pada akhirnya resolusi penting. NTSC hanya memiliki 83 resolusi PAL. Dan resolusi PAL sudah cukup buruk. Film bioskop direkam dengan 24 fps. Untuk mengkonversikannya ke PAL (25 fps), Anda cukup membuat film berjalan lebih cepat (4 lebih cepat, beberapa orang dengan telinga sensitif mungkin mendengar nada angkatnya). Tapi untuk mengubahnya menjadi NTSC (30 fps) adalah cerita yang sama sekali berbeda. PAL lebih umum di seluruh dunia daripada NTSC. Sekitar 4 kali lebih banyak orang tinggal di negara PAL daripada di negara NTSC. Saya tidak berbicara tentang hal lain seperti Fluktuasi Hue, Kontras, rasio Gamma dan sebagainya (N pernah T dia S ame C olor, karena masalah warnanya), karena PAL juga bukan yang terbaik dalam hal ini. Saya berbicara tentang resolusi dan frame rate yang merupakan argumen terbesar untuk Pal. Seperti yang Anda lihat dari alasan di atas ini tidak ada hubungannya dengan anti-Amerikanisme atau anti-Jepang. Its hanya berdasarkan logika murni. Saya telah melihat film PAL dan film NTSC dan kejelasan PAL jauh lebih baik. Fluiditas mereka (50 gambar per detik vs 60 gambar per detik) hampir sama. Ada camcorder (seperti Panasonics AG-DVX100) yang bisa diputar dengan 24 frame per detik. Tanpa ladang. Hanya bingkai progresif (non-interlaced). Mengapa 24 dan bukan 25 Untuk memberi Anda perasaan bioskop. Jadi info di situs ini mengenai deinterlacing film tidak berlaku untuk rekaman film seperti itu. Saat Anda membeli DVD, ada yang dikodekan dengan bingkai interlaced dan ada juga yang progresif. Outputnya selalu terjalin tentu saja (kecuali beberapa pemutar DVD spesial) karena TV Sets biasanya tidak mendukung input progresif. DivX suckz dan DivX rulez. Aturan DivX karena de coder cepat dan gratis. Aturan DivX karena en coder itu bagus dan cepat. DivX menyebalkan karena mahal jika Anda ingin menerbitkan film Anda sendiri secara komersial: Anda harus membayar DivX Networks untuk pembuat enkode DAN untuk film yang dikodekan jika Anda ingin menggunakannya secara komersial. AND you have to pay the MPEG patent holders (mpegla ) per movieper minute (because DivX is Mpeg-4). The MPEGLA fee for itself is already way too high. Please see my website 1-4a for movie utilities. ImageMagick v6 Examples -- Multi-Image Layers Layering Images Introduction As we have previously noted, ImageMagick does not deal with just one image, but a sequence or list of images. This allows you to use IM in two very special image processing techniques. You can for example think of each image in the list as a single frame in time, so that the whole list can be regarded as being a Animation . This will be explored in other IM Example Pages. See Animation Basics. Alternatively, you can think of each image in the sequence as Layers of a set of see-through overhead transparencies. That is, each image represents a small part of the final image. For example: the first (lowest) layer can represent a background image. Above that you can have a fuzzy see though shadow. Then the next layer image contains the object that casts that shadow. On top of this a layer with some text that is written over that object. That is you can have a sequence of images or layers that each adds one more piece to a much more complex image. Each image layer can be moved, edited, or modified completely separately from any other layer, and even saved into a multi-image file (such as TIFF. MIFF: or XCF:) or as separate images, for future processing. And that is the point of image layering. Only when all the image layers have been created do you Flatten. Mosaic. or Merge all the Layered Images into a single final image. Appending Images Appending is probably the simplest, of the multi-image operations provided to handle multiple images. Basically it joins the current sequence of images in memory into a column, or a row, without gaps. The - append option appends vertically, while the plus form append appends horizontally. For example here we append a set of letter images together, side-by-side, to form a fancy word, in a similar way that individual glyphs or letters of a font, are joined together. The above is similar (in a very basic way) to how fonts are handled. Unlike real fonts you are not limited to just two colors, but can generate some very fancy colorful alphabets from individual character images. Many of these image fonts are available on the WWW for download. A very small set can be found in Anthonys Icon Library. in Fonts for Text and Counters. which is also where I found the above Blue Bubble Font. Note also how the append operator was done as the last operation, after all the images that you want to append have been added to the current image sequence. This is great for appending a label to an image, for example. Note that the - background color was used to fill in any space that was not filled in. Of course if the all the images are the same width, no space will be left for this fill. From IM v6.4.7-1 the - gravity setting can be used to specify how the images should be added together. As such in a vertical append, a setting of Center will center the image relative to the final resulting image (so will a setting of either North or South ). Technically the first set of parenthesis is not needed, as no images have been read in yet, but it makes the whole thing look uniform and shows the intent of the command, in making an array of images. See also Montage Concatenation Mode. for an alternative way of creating arrays of equal sized images. The - append operator will only append the actual images, and does not make use the virtual canvas (image page) size, or the image offset. However the virtual canvas information seems to be left in a funny state with the canvas sizes being added together and the offset set to some undefined value. This may be regarded as a bug, and means either the input images or result should have the virtual canvas reset using repage , before saving, or using the image in operations where this information can become important. This situation will probably be fixed in some future expansion of the operation. Caution is thus advised, especially if re-appending Tile Cropped images. Append with Overlap On the IM Forum a user asked for a simple way to Append images with some overlap. Many solutions were offered. This was one of the simplest solutions, with the amount of overlap given in a single location. The above did not need to any image positioning calculations, typically involving image sizes, that would represent a more general solution. See Handling Image Layers below. What this did was chop off the part that overlapped, before appending the result to the first image, producing the final image size. The original image is then composed (with gravity) on top to generate the actual overlap. It can be easily modified for vertical overlapping, or even right to left overlapping relatively easily. Smushing Append Another way of appending images is by smushing. The - smush operator works much like the Append Operator (see above) does, but it takes an argument of how much space (or anti-space) you want between the images. For example, lets use it to so the previous example more simply. That works very well, though that is not what the operator is actually designed for, and it is probably a lot slower. What smush actually is ment to do is move shaped images as close togther as posible. For example here I generate the letters A and V and smush them together with as little space between them as posible. Notice that how the two letters were appended together far closer than append would, taking advantage of the empty space of the images shape. That is what - smush does. The argument, is an offset for that final position, and as shown before, it may be positive, to generate a gap, or negative to create a overlap. Note that to actually do this, the operator does do some extra work to do to find the closest position to smush the images together. Composition of Multiple Pairs of Images Composition is the low-level operation that is used to merge two individual images together. Almost all layering techniques eventually devolve down to merging images together two at a time, until only one image is left. So lets start by looking at ways of doing low-level composition of image pairs. Using the Composite Command The traditional method of combining two images together using ImageMagick is though the composite command. This command can only combine only two images at a time, saving the results of each operation into a file. This of course does not stop you from using it to layer multiple images, one image at a time. As all input images are read in by ImageMagick BEFORE the output image is opened, you can output to one of the input images. This allows you to work on the same image over and over, as shown above, without problems. Do not do this with a lossy image format like JPEG as the format errors are accumulative, and the base image will quickly degrade. You can also resize the overlaid image as well as position it using the - geometry setting. The composite command also has a few other advantages in that you can use to control the way the image is drawn onto the background with the - compose option and its relative position is effected by the - gravity setting. You can also - tile the overlay so that it will just cover the background image, without needing to specify tile limits. This is something only available when using composite . The big disadvantage with this method is that you are using multiple commands, and IM has to write-out the working image, either to a pipeline, or to disk, for the next command to read-in again. To find more examples of using the composite command, to overlay images on top of other images, see Annotating by Overlaying Images and Image Positioning using Gravity . Composite Operator of Convert The - composite operator is available within the convert command. For more details see Image Composition in IM. This allows you to do the same as the above, but all in one command. The drawn images can also be Rotated, Scaled, and Affine Distorted during the overlay process. Though that can be tricky to get working the way you want. Drawn images are - gravity effected, just like text. Layering Multiple Images True layering of images requires methods to combine multiple images together, without needing to individually compose each pair of images separately. This is where the various - layers operator methods come into their own. Ordering of layered images can be important, so it is a good idea to understand the special Image Sequence or List Operators. Note that layered images is practically identical to the handling animated frames. As such it is recommended you also look at both Animation Basics and Animation Modifications for techniques involving processing individual layers or frames. Actually animations often use the same - layers operator for processing images. Flatten - onto a Background Image The - layers flatten image list operator, (or its shortcut - flatten ) will basically Compose each of the given images on to a background to form one single image. However the image positions are specified using their current Virtual Canvas, or Page offset. For example, here I create a nice canvas, and specify each of the images I want to overlay onto that canvas. As of IM v6.3.6-2 the - flatten operator is only an alias for a - layers flatten method. Thus the - flatten option can be regarded as a short cut for the - layers method of the same name. You dont need to create an initial canvas as we did above, you can instead let - flatten create one for you. The canvas color will be the current - background color, while its size is defined by the first images Virtual Canvas size. While the - gravity setting will effect image placement defined using - geometry settings, it will not effect image positioning using virtual canvas offsets set via the - page setting. This is part of the definition of such offsets. See Geometry vs Page Offsets for more details. If placement with - gravity is need look at either the above multi-image composition methods, or the special Layers Composition method that can handle both positioning methods simultaneously. If any image does not appear in the defined virtual canvas area, it will either be clipped or ignored, as appropriate. For example here we used a smaller canvas size, causing the later images not to appear completely on that canvas. The normal use of Flatten is to merge multiple layers of images together. That is you can be generating various parts of a larger image, usually using Parenthesis to limit image operators to the single layer image being generated, and then flatten the final result together. For example one typical use is to create a Shadow Image layer, onto which the original image is flattened. For example. Note that as I want the shadow under the original image, I needed to swap the two images place them in the right order. Using Flatten for adding generated Shadow Images is not recommended, as generated shadow images can have negative image offsets. The recommended solution, as given in the section on Shadow Images. is to use the more advanced Layer Merging technique, we will look at later. Because the Virtual Canvas consists of just a size, the resulting image will be that size, but have no virtual canvas offset, as such you do not need to worry about any offsets present in the final image. This use of the virtual canvas to define the canvas on which to overlay the image means you can use it to add a surrounding border to an image. For example here I set an images size and virtual offset to pad out an image to a specific size. Of course there are better ways to Pad Out an Image so that IM automatically centers the image in the larger area. Strangely the exact same handling can be used to clip or Crop an image to a virtual canvas that is smaller than the original image. In this case however you want to use a negative offset to position the crop location, as you are offsetting the image and not positioning the crop window. Of course a Viewport Crop would also do this better, without the extra processing of canvas generation and overlaying that - flatten also does. It also will not expand the image itself to cover the whole viewport if the image was only partially contained in that viewing window. A common mis-use of the - flatten operator is to Remove Transparency from an image. That is to get rid of any transparency that an image may have, but overlaying it on the background color. However this will not work when multiple images are involved as as such no longer recommended. Mosaic - Canvas Expanding The - layers mosaic operator (or its - mosaic shortcut) is more like a expanding canvas version of the Flatten Operator. Rather than only creating an initial canvas based on just the canvas size of the initial image, the Mosaic Operator creates a canvas that is large enough to hold all the images (in the positive direction only). For example here I dont even set an appropriate Virtual Canvas. however the - mosaic operator will work out how big such a canvas needs to be to hold all the image layers. As on IM v6.3.6-2 the - mosaic operator is only an alias for a - layers mosaic . Thus the - mosaic option can be regarded as a short cut for the - layers method of the same name. Note that both - mosaic and - flatten still creates a canvas that started from the origin or 0,0 pixel. This is part of the definition of an images virtual canvas or page and because of this you can be sure that the final image for both operators will have a no virtual offset, and the whole canvas will be fully defined in terms of actual pixel data. Also note that - mosaic will only expand the canvas in the positive directions (the bottom or right edges), as the top and left edge are fixed to the virtual origin. That of course means - mosaic will still clip images with negative offsets. Merging - to Create a New Layer Image The - layers merge operator is almost identical to the previous operators and was added with IM v6.3.6-2. It only creates a canvas image just large enough to hold all the given images at their respective offsets. Like Mosaic will also expand the canvas, but not only in the positive direction, but also in the negative direction. Basically it means that you dont have to worry about clipping, offset, or other aspects when merging layer images together. All images will be merged relative to each others location. The output does not include or ensure the origin is part of the expanded canvas. As such the output of a Layers Merge can contain a layers offset which may be positive or negative. Dengan kata lain. Layers Merge merges layer images to produce a new layer image . As such if you dont want that offset when finished you will probably want to include a repage operator before the final save. For example here is the same set of layer image we have used previously. As you can see the image is only just big enough to hold all the images which were placed relative to each other, while I discarded the resulting images offset relative to the virtual canvas origin. This preservation of relative position without clipping or extra unneeded space is what make this variant so powerful. Lets try this again by giving one image a negative offset. As you can see the balloon was not clipped, just moved further away from the others so as to preserve its relative distance to them. Of course the repage operator in the above examples, removes the absolute virtual canvas offset in the final image, preserving only the relative image placements between the images. The offset was removed as web browsers often have trouble with image offsets and especially negative image offsets, unless part of a GIF animation. But if I did not remove that offset, all the images will remain in their correct location on the virtual canvas within the generated single layer image, allowing you to continue to process and add more images to the merged image. Typically you would use a - background color of None , to make the unused areas of the merged image transparent. When applied to a single image, Layer Merging will replace any transparency in the image with the solid color background, but preserve the images original size, as well as any any offsets in that image, The virtual canvas size of the image however may be adjusted to best fit that images size and offset. The operators original purpose was allow users to more easily merge multiple distorted images into a unified whole, regardless of the individual images offset. For example when aligning photos to form a larger panorama. You could simply start with a central undistorted base image (without an offset), and use this operator to overlay the other images around that starting point (using either negative or positive offsets) that have been aligned and distorted to match that central image. For other examples of using this operator by distorting images to align common control points, see 3D Isometric Photo Cube. and 3D Perspective Box. Other examples of using this operator is to generate a simple series of Overlapping Photos. Coalesce Composition - a Progressive Layering The - layers coalesce image operator (or its - coalesce shortcut) is really designed for converting GIF animations into a sequence of images. For examples, see Coalescing Animations for details. However, it is very closely associated with - flatten and has very useful effects for multi-layered images in this regard. For example using Coalesce on a single image, will do exact the same job as using Flatten with a - background color of None or Transparency . That is it will fill out the canvas of the image with transparent pixels. Layers Composite - Merge Two Layer Lists With IM v6.3.3-7 the - layers method, Composite was added allowing you compose two completely separate sets of images together. To do this on the command line a special null: marker image is needed to define where the first destination list of images ends and the overlaid source image list begins. But that is the only real complication of this method. Basically each image from the first list is composed against the corresponding image in the second list, effectively merging the two lists together. The second list can be positioned globally relative to the first list, using a Geometry Offset. just as you can with a normal Composite Operator (see above). Gravity is also applied using the canvas size of the first image, to do the calculations. On top of that global offset, the individual virtual offset of image is also preserved, as each pair of images is composited together. One special case is also handled. If one of the image lists contains only one image, that image will be composed against all the images of the other list. Also in that case the image meta-data (such as animation timings) of larger list is what will be kept, even if it is not the destination side of the composition. This laying operator is more typically used when composing two animations, which can be regarded as a sort of time-wise layered image list. Because of this it is better exampled in the Animation Modifications section of the examples. So see Multi-Image Alpha Composition for more details. Handling Image Layers Laying multiple images using the various layer operators above is a very versatile technique. It lets you work on a large number of images individually, and then when finished you combine them all into a single unified whole. So far we have shown various ways of merging (composing or layering) multiple images in many different ways. Here I provide some more practical examples on just how to make use of those techniques. Layering Of Thumbnail Images You can also use this technique for merging multiple thumbnails together in various complex ways. Here I add a Soft Edge to the images as you read and position them, you can generate a rather nice composition of images, on a Tiled Canvas. Calculated Positioning of Images. The Virtual Canvas Offset (page) can be set in many ways. More specifically you can - set set this per-image Attribute. and even calculate a different location for each and every image. For example here I read in a big set of images (small icon images all the same size) and arrange them in a circle. The key to the above example is the - set page operation that uses the normalized image index (the FX Expression tn ) to create a value from 0.0 to not quite 1.0 for each individual image. This value is then mapped to position the image (by angle) in a circle of 80 pixels radius, using FX Expressions as a Percent Escape. The position calculated is of the top-left corner of the image (not its center, though that is a simple adjustment), which is then Merged to generate a new image. The positioning is done without regard of the offset being positive or negative, which is the power of the Merge Laying Operator. That is we generated a new image of all the images as they are relative to each other. The final repage removes the final resulting negative offset of the merged layer image, as this is no longer needed and can cause problems when viewing the resulting image. Note that the first image (right-most in result) is layered below every other image. If you want the layering to be truly cyclic so the last image was below this first one, you may have either: to generate and combine two versions of the above, with different ordering of the images or overlay the first image on the last image, correctly, before generating the circle. Both solutions are tricky, and is left as a exercise. This technique is powerful, but it can only position images to a integer offset. If you need more exact sub-pixel positioning of images then the images will need to be distorted (translated) to the right location rather than simply adjusting its virtual offset. Incrementally Calculated Positions You can access some image attributes of other images using FX expressions, while setting the attribute of images as they are processed. This means that you can set the location of each image, relative the calculated position of the previous image. For example this sets the position of each image to be the position of the previous image, plus the previous images width. Each image is appended to the location of the previous image, by looking up that location and adding that images width. This previous location was in fact just calculated, as IM looped through each image setting the page (virtual offset) attribute. The result is a DIY Append Operator equivalent, and from which you can develop your own variations. You should note that the whole sequence is actually shifted by u-1.w set during the position calculation of the first image. This should be the width of the last image in the current image sequence. That overall displacement however is junked by the final repage . You can use some extra calculation to have it ignore this offset, but it isnt needed in the above. When using a image index such as ut all image selectors u , v , and s , all references the same image, according to the index given. As such it is better to use u (the first or zeroth image) as a mnemonic of this indexing behaviour (and in case this changes). Here is another example. Each image is offset relative to the previous image, using both position and width of that image, so as to calculate a Overlapped Append. This ability to access attributes of other images, also includes the pixel data of other images. That means you could create a special image where the color values represent the mapped positions of the other images. Of course that mapping image would also be positioned, and would need to be removed before the overlay is performed. How useful creating special mapped position images is another matter. It is just another possibility. Two Stage Positioning of Images You can simplify your image processing, by separating them into two steps. One step can be used to generate, distort, position and add fluff to images, with a final step to merge them all together. For example, lets create Polaroid Thumbnails from the larger original images in Photo Store. processing each of them individually (keeping that aspect separate and simple). The script above seem complicated but isnt really. It simply generates each thumbnail image in a loop, while at the same time center pads (using Extent ) and Trims each image so that the images center is in a known location on the virtual canvas. It could actually calculate that postion, though that may require temporary files, so it is better to ensure it is in a well known location, for all images. The image is then translated (using a relative - repage operator, see Canvas Offsets ), so that each image generated will be exactly 60 pixels to the right of the previous image. That is, each image center is spaced a fixed distance apart, regardless of the images actual size, which could have changed due to aspect ratios and rotations. The other major trick with this script is that rather than save each layer image into a temporary file, you can just write the image into a pipeline using the MIFF: file format. A method known as a MIFF Image Streaming. This works because the MIFF: file format allows you to simply concatenate multiple images together into a single data stream, while preserving all the images meta-data, such as its virtual canvas offset. This technique provides a good starting point for many other scripts. Images can be generated, or modified and the final size and position can be calculated in any way you like. Another example is the script hslnamedcolors which takes the list of named colors found in ImageMagick and sorts them into a chart of those colors in HSL colorspace. You can see its output in Color Specification. Other possibilities include. Use any type of thumbnail (or other Fluff ), or just simply use a raw small thumbnail directly. Generate images so the first image is centered and the other images are arrange to the left and right under that first image, like a pyramid. Position images into Arcs, Circles and spirals, by placing them at specific X and Y coordinates relative to each other. For example: PhD Circle. Sunset Flower. Fibonacci Spiral. Position images according to their color. For example: Book Covers. Position images by time of day or time submitted. For example: Year of Sunsets Basically you have complete freedom in the positioning of images on the virtual canvas, and can then simply leave IM to sort out the final size of the canvas needed to whole all the images. Pins in a Map Here is a typical layering example, placing coloured pins in a map, at specific locations. To the left is a push pin image. The end of the pin is at position 1841. I also have a image of a Map of Venice. and want to put a pin at various points on the map. For example Accademia is locate at pixel position, 160283. To align the push-pin with that position you need to subtract the location of the end of the pin from map position. This produces a offset of 142242 for our pin image. Here is the result, using layered images This example was from a IM Forum Discussion, Layering Images with Convert. Lets automate this further. We have a file listing the locations and colors for each of the pins we want to place in the map. The location name in the file is not used and is just a reference comment on the pixel location listed. Note it assumes the original pin color is red ( which has a hue of 0 ) and uses the Modulate Operator to re-color it to other colors, with the appropriate scaling calculations. Note that the modulate argument for a no-op hue change is 100, with it cycling over a value of 200 (a sort of pseudo-percentage value). FUTURE: perspective distort map, adjust pin size for depth on the map calculate change in pin position due to distortion, and pin it to the distorted map. The above used a method known as a MIFF Image Streaming. with each image generated individually in a loop, then piped into the layering command to generate the final image. The alternative method (commonly using in PHP scripts) is to use a generated command technique, that uses a shell script to generate a long convert command to be run. The scripts in Image Warping Animations use this technique. Both methods avoid the need to generate temporary images. Layers of Shadows Correctly handling semi-transparent shadow effects in a set of overlapping images is actually a lot more difficult than it seems. Just overlaying photos with shadows will cause the shadows to be applied twice. That is two overlapping shadows become very dark, where in reality they do not overlay together in quite the same way that the overlaying images do. The various parts of the image should be simply shadowed or not shadowed. That is shadows should be applied once only to any part of the image. You should not get darker areas, unless you have two separate light sources, and that can make things harder still. Tomas Zathurecky lt tom 64 ksp. sk gt took up the challenge of handling shadow effects in layered images, and developed image accumulator technique, to handle the problem. Basically we need to add each image to the bottom of stack one at a time. As we add a new image the shadow of all the previous images needs to darken the new image, before it is added to the stack. However only the shadow falling on the new image, needs to be added. Shadows not falling on the new image needs to be ignored until later, when it falls on some other image, or the background (if any). Here is an example. The above program seems complex, but is actually quite straight forward. The first image is used to start a accumulating stack of images (image index 0). Note we could have actually started with a single transparent pixel ( - size 1x1 xc:none ), if you dont want to use that first image to initialize the stack. Now to add a new image to the bottom of the image stack, we apply the same set of operations, each time. First the thumbnail image is read into memory, and any rotations, relative placements (may be negative), is applied. You could also do apply other thumbnailing operations to the image at this point if you want, though for his example that have already been performed. The new image forms image index 1. We now grab the previous stack of images (0), generate a shadow with appropriate color, blur, offset, and ambient light percentage. This shadow is overlaid on the new image (1) so only the shadow that falls ATop the new image is kept. We also (optionally) apply a Trim Operation the result to remove any extra space added from the shadowing operation, to form image 2. Now we simply add the new image (2) to the accumulating stack of images (0). and delete all the previous working images, except the last. To add more images we basically just repeat the above block of operations. After all the images has been added to the stack, it is simply a matter of doing a normal shadowing operation on the accumulated stack of images. removing any remaining image offsets (which many web browsers hate). Using Merge I can automatically handle virtual offsets, especially negative ones, allowing to to simply place images anywhere you like relative to the previous image placements. It also make applying shadows which can generate larger images with negative offsets properly. Now the above handles multi-layered image shadows properly, but while the shadow is offset, it is actually offset equally for all the images What really should happen is that the shadow should become more offset and also more blurry as it falls on images deeper and deeper in the stack. That is a image at the top should case a very blurry shadow on the background, compared to the bottom-most image. This is actually harder to do as you not only need to keep a track of the stack of images, you also need to keep a track of how fuzzy the shadow has become as the stack of images becomes larger. Thus you really need two accumulators. The image stack (as above), and the shadow accumulation, as we add more images. For example here is the same set of images but with shadows that get more blurry with depth. Look carefully at the result. The offset and blurriness of the shadow is different in different parts of the image. It is very thin between images in adjacent layers, but very thick when it falls on a image, or even the background much deeper down. Of course in this example, the shadow offset is probably too large, but the result seems very realistic giving a better sense of depth to the layers. Note how we split the operation of shadow into two steps. When applying the accumulated shadow (image index 1) to the new image (2), we only add the ambient light percentage, without any blur, or offset ( 70x000 in this case). The new image is then added to the accumulating stack of images (0). But after adding new images (2) shadow directly to the accumulated shadow (1), again without blur or offset, only then do we blur and offset ALL the shadows, to form the new accumulated shadow image. In other words, the accumulated shadow image becomes more and more blurry and offset as the stack gets thicker and thicker. Only the shadow of deeper images has not accumulated the effect as much. This program essentually separates the application of the shadow, from the incremental shadow accumulator. This allows you control things like. Realistic Shadow (as above): 70x000 and 100x247 Constant Shadow (as basic example): 70x247 and 100x000 constant blur, but cumulative offset: 70x200 and 100x047 both constant and progressive offset: 60x047 and 100x011 cumulative ambient light effect: 80x000 and and 95x247 Most of them are probably unrealistic, but may look good in another situations. Also setting the - background color before the - compose ATOP composition will let you define the color of the shadow (actually a colored ambient light).You can even even use a different color for the shadow that eventually falls on the final background layer (the last - background black setting), or leave it off entirely to make it look like the images are not above any background at all (that is floating in mid-air). It is highly versitile. Tomas Zathurecky went on to develop another method of handling the shadows of layered images, by dealing with a list of layered images as a whole. Something I would not have considered posible myself. The advantage of this method is that you can deal with a whole list of images as a whole, rather than having to accumulate one image at a time, and repeating the same block of operations over and over. First lets again look at the simplier contant shadow problem. You can see the same set of blocks that was used previously, but with much more complicated caculations to set the initial Bounds Trimming. and later calculate the offsets needed for the progressive shadow list. However the shadow currently does not become more blurry with depth. The above will be a lot simplier using the IMv7 magick command, which would allow you to use fx calculations directly the argument to - shadow , that would let you not only calculate a larger offset for the shadow with depth, but also let you mak ethe shadow more blurry with depth. Positioning Distorted Perspective Images Aligning distorted images can be tricky, and here I will look at aligning such images to match up at a very specific location. Here I have two images that highlight a specific point on each image. The second image is 65 semi-transparent, which allow you to see though it when it is composed onto the blue image, so you can see if the marked points align. The marked control points themselves are at the coordinates 59,26 (blue) and 35,14 (red) respectively. If you are simply overlaying the two images, you can just subtract the offsets and compose the two image on top of each other, producing a offset of 2412. Note that this offset could be negative And that is something we will deal with shortly. This only works as the coordinates are integer pixel coordinates. If the matching coordinates are sub-pixel locations (as is typically the case in a photo montage), simple composition will not work. It will also not work well if any sort of distortion is involved (which is also common for real-life images). And this is the problem we will explore. When distorting the image, you will want to ensure the two pixels remain aligned. The best way to do that would be to use the points you want to align as Distort Control Points. This will ensure they are positioned properly. As distort generates a layer image with a canvas offset you can not simply use Composite to overlay the images (too low level), instead we need to use a Flatten operator, so that it will position them using the distort generated offset. Note how I also added a value of 0.5 to the pixel coordinates. This is because pixels have area, while mathematical points do not, as such if you want to align the center of a pixel, you need to add 0.5 to the location of the center point within the pixel. See Image Coordinates vs Pixel Coordinates for more information. The other problem with the above was that the overlaid image was clipped by the blue background canvas image, just as the Composite Operator does. That is to say the blue image provided the clipping viewport for the result during the composition. To prevent this we use Layer Merge instead which automatically calculates a viewport canvas that is large enough contain hold all the images being composted together. As the result of the merge the image will have a negative offset (so as to preserve layer positions of the images). To display the results I needed to junk that offset as many browsers do not handle negative offsets in images. I do this using repage before saving the final image. If I was going to do further processing (without displaying the result on the web) I would keep that offset (remove the repage ), so the image positions remains in their correct and known position for later processing. Now the same techniques as shown above would also apply if you were doing a more complex distortion such as Perspective. The problem with this technique is that you position the perspective distortion using an internal control point. That is one point in the inside of the image, and 3 points around the edge. That can make it hard to control the actual perspective shape, as a small movement of any control point can make the free corner move wildly. This situation can be even worse if you are using a large list of registered points to get a more exact least squares fit to position images. In that case the point you are interested in be no wehere near one of the control registered points used to distort the image. The alternative is to simply distort the image the way we need to, then figure out how we need to translate the resulting image to align the points we are interested in. To make this work we will need to know how the point of interest moved as a result of the distortion. This is real problem with distorting and positioning images, especially real life images. For example, here I distort the image using all four corners to produce a specific (suposedally desired) distortion shape, but I will not try to align the control points at this point, just apply the distortion. As you can see while the red image was distorted, the position of the red control point is no where near the blue control point we want to align. You can not just simply measure these two points as the red point is unlikely to be at a exact pixel position, but will have a sub-pixel offset involved. We will need to first calculate exactly where the red point is. To do that we can re-run the above distortion with verbose enabled to get the perspective forward mapping coefficients. These can then be used to calculate as described in Perspective Projection Distortion. All we want is just the calculated coefficients used by the distortion. As such we dont need the destination image, so we just the output using a null: image file format. We also tell the distort that the new image it is generating is only one pixel is size using a Distort Viewport. That way it does the distortion preparation and verbose reporting, but then only distorts a single destination pixel, which is then junked. This can save a lot of processing time. Actually if the distortion did not use source image meta-data (needed for the percent escapes w and h ) as part of its calculations, we would not even need the source image alignred. png . In that case we could have used a single pixel null: image, for the input image too. We are also not really interested in the virtual pixels, backgrounds, or anything else for this information gathering step, so we dont need to worry about setting those features. Now we can get the distort information, we need to extract the 8 perspective coefficients, from the 3rd and 4th line of the output. These can then be used to map the red control point to its new distorted position, and from there subtract it from the blue control point, so as to get the actual amount of translation that is needed, to align the marked red coordinate with the blue coordinate. The above used the tr text filter to remove extra quotes and commas from the output. It then uses the awk program to extract the coefficients, and do the floating point mathematics required to forward map the red marker to match the blue marker. Note that I again added 0.5 to the pixel coordinates of the control points to ensure that the center of the pixel is what is used for the calculations. See Image Coordinates vs Pixel Coordinates. Now we know the amount of translation needed by the distorted image, we have two ways you add that translation to the distortion. Either by modifying the coefficients of the perspective projection appropriately (not easy). Or we could just add the translation amounts to each of the destination coordinates of the original (very easy). Here is the result of the latter (add translations to destination coordinates). Averaging hundreds of images of the same fixed scene, can be used to remove most transient effects, such moving people, making them less important. However areas that get lots of transient effects may have a ghostly blur left behind that may be very hard to remove. As video sequences are notoriously noisy when you look at the individual frames, you can average a number of consecutive, but unchanging, frames together to produce much better cleaner and sharper result. Matt Leigh, of the University of Arizona, reports that he has used this technique to improve the resolution of microscope images. He takes multiple images of the same target then averages them all together to increase the signalnoise ratio of the results. He suggests others may also find it useful for this purpose. An alternative for averaging two images together is to use a composite - blend 50 image operation, which will work with two different sized images. See the example of Blend Two Images Together for more detail. The IM Discussion Forum had a discussion on Averaging a sequence 10 frames at a time. so as to average thousands of images, without filling up the computers memory (making it very slow). Related to this, and containing relevent maths is the discussion Dont load all images at once. Another alternative to using mean is to use the newer Poly Operator. which can individually weight each image. MaxMin Value of multiple images The Max and Min methods will get the maximum (lighter) values and minimum (darker) values from a sequence of images. Again they are basically equivalent to using a Lighten and Darken Composition Methods. but with multiple images. With the right selection of background canvas color, you could use Flatten Operator with the equivelent compose method. WARNING: This is not a selection of pixels (by intensity), but a selection of values. That means the output image could result in the individule red, green and blue values from different images, resulting in a new color not found in any of the input images. See the Lighten Compose Method for more details of this. Median Pixel by Intensity The - evaluate-sequence Median will look for the pixel which has an intensity of the middle pixel from all the images that are given. That is for each position it collects and sorts the pixel intensity from each of the images. Then it will pick the pixel that falls in the middle of the sequence. It can also be used as a alternative to simply averaging the pixels of a collection of images. This could be used for example by combining an image with two upper and lower limiting images. As the pixel will be the middle intensity you will either get the pixel from the original image, or a pixel from the limiting images. In other words you can use this to clip the intensity of the original image. Strange but true. For an even number of images, the pixel on the brighter side of the middle will be selected. As such with only two images, this operator will be equivalent to a pixel-wise lighten by intensity. The key point is that each pixel will come completely from one image, and sorted by intensity. You will never get a mix of values, producing a color mixed from different images. The exact color of each pixel will come completely from one image. Add Multiple Images The Add method is will of course simply add all the images together. This takes a rose: (unmodified using a weight of 1 and power-of 1), adds to this twice the color values from the granite: image (weight2), and finally subtracts a value of 1 using a null: image, using an exponent of 0 (ignore image input) and a weighting value of -1.0. The resulting image is equivalent to. rose 2.0granite - 1.0 In other words the rose image is given a noisy granite texture overlay (with a 50 grey bias). This is in fact exactly like a very strong Hardlight lighting effect but with very explicit weighting of the granite overlay. The key difference to this over other multi-image operations is the ability to weight each image individually, but perform all calculations in a single image processing operation without the need for extra intermediate images. This avoids and quantum rounding, clipping or other effects on the final results, in a non-HDRI version of ImagMagick. (See Quantum Effects ). It can for example be used to perform a weighted average of large numbers of images, such as averaging smaller groups of images, then averaging those groups together. Created: 3 January 2004 Updated: 19 April 2012 Author: Anthony Thyssen. ltA. Thyssen64griffith. edu. au gt Examples Generated with: URL: imagemagick. orgUsagelayers

No comments:

Post a Comment