วันอังคารที่ 22 ธันวาคม พ.ศ. 2552

การติดตั้ง CImg และ Visual C++ 2005 สำหรับงาน Image processing

หลังจากที่ลองผิดลองถูกมาตั้งนานครับ และวันนี้ก็เป็นผลซะที เพราะว่าได้ทดลองเอง อ่านจากอินเทอร์เน็ตประกอบ หากยากมากภาษาไทย หรือว่าไม่มีคนใช้ Library ตัวนี้หรือเปล่า ในเมือสามารถทำได้แล้วก็เอามาเก็บไว้เตือนความจำดีกว่าครับ

CImg เป็น Library สำหรับการทำ Image processing ครับ หากอยากจะลองอะไรใหม่ ๆ ก็ทดสอบได้เลยครับ เพราะผมเองก็อยากทำมานานแล้ว แต่่ว่าไม่เป็นผลซะทีมาวันนี้ ทำได้แล้วครับ

๑. เริ่มจาก ดาวโหลด package CImg (http://cimg.sourceforge.net/) ครับ ดาวโหลดได้ง่ายมาก สำหรับเวอร์ชันที่ผมดาวโหลดมาก็คือ Stand package ครับ

๒. ตอนนี้ก็ติดตั้ง Visual C++ 2005 นะครับ ไม่ใช่ (Express Edition นะรู้สึกว่าจะตั้งค่าต่างกันเล็กน้อย ซึ่งสำหรับ Express Edition การตั้งค่าจะมีมากับคู่มือของ CImg อยู่แล้ว) สำหรับไฟล์คู่มือการติดตั้งนะครับ (ภาษาอังกฤษ http://cimg.sourceforge.net/CImg_reference.pdf) (ภาษาจีน http://cimg.sourceforge.net/CImg_reference_chinese.pdf)

ผ่าน ๒ ขั้นตอนการเตรียมซอฟต์แวร์สำหรับการทำงานแล้วนะครับ ต่อมาลองสร้าง project ง่าย ๆ สำหรับการแสดงรูปภาพ hello image ครับ

เริ่มต่อเลยครับ...

๓. นำไฟล์ CImg.h ที่ได้มาจาก package ของ CImg ที่ดาวโหลดมานะครับ ไปไว้ที่ตำแหน่ง include ของ VC++ ครับ หากติดตั้งตามค่า default ก็ตามไดเรกทอรี่นี้ครับ C:\Program Files\Microsoft Visual Studio 8\VC\include

๔. ทำการสร้างโปรเจ็คจาก Visual C++ 2005 เลือกเมนู File->New->Project...แล้วเลือกตามภาพด้านล่างครับ







๕. สร้างไฟล์ภาษา C++ เลือกเมนู Project->Add New Item... แล้วเลือกตามรูปพร้อมตั้งชื่อไฟล์

๖. กรอกโค้ดโปรแกรมทดสอบ ตามภาพด้านล่าง เลย

๗. Build Project ดูเลย ตอนผมทำมันมี warning ด้วยแต่่ว่าสามารถทำงานได้ครับ ตามรูปเลย


๘. ถึงตรงนี้แล้วก็ดูผลได้ครับ อ่อหากเกิด error แบบนี้แสดงว่าหาไฟล์ไม่เจอครับ แค่คัดลอกไฟล์ทดสอบไปไว้ในโฟลเดอร์ที่เก็บ Project ก็เสร็จครับ



เสร็จเรียบร้อยแล้วครับ หากต้องการใช้งานที่หลากหลายกว่านี้ก็ศึกษาเพิ่มเติมได้จากคุ่มือ หรือหากมีอะไรที่น่าจะสนใจได้เอามาเขียนไว้ตอนต่อไปครับ

วันจันทร์ที่ 30 พฤศจิกายน พ.ศ. 2552

javascript windows size

บางครั้งความจำเป็นในการพัฒนาเว็บที่ต้องใช้จาวาสคริป (java script) ในการ จัดวาตำแหน่งของข้อมูล หรือกล่องข้อมูลที่ได้มาจากการกำหนดจาก CSS การจัดวางตรงกลางหน้าจอ นี้ก็นับว่ามีความสำคัญอย่างยิ่ง และหลายครั้งก็จำเป็นต้องว่าข้อมูลไว้ที่หน้าจอ

เมื่อต้องการกำหนดข้อมูลต่าง ๆ ไว้ที่หน้าจอ ก็ต้องเกิดปัญหาต่อมาคือขนาดหน้าจอของผู้ใช้งานแต่เครื่องนั้นก็มีขนาดความ กว้าง x ยาง (พิกเซล) ไม่เท่ากัน ย่อมเกิดความยุ่งยากในการจัดวางตำแหน่งของข้อมูลที่ให้อยู่ตรงกลางจอพอดี

ทางออกมีหลายทาง แต่ทางหนึ่งที่เราสามารถวัดขนาดของหน้าจอ (Browser ได้ว่า ตอนนั้น มีขนาด ความกว้าง width และ ความสูง height เท่าไหร่ โดยใช้ function ต่อไปนี้ในการประยุกต์ใช้งานได้


function showSize() {
  var theW = 0, theH = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Modern Browser
    theW = window.innerWidth;
    theH = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    theW = document.documentElement.clientWidth;
    theH = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    theW = document.body.clientWidth;
    theH = document.body.clientHeight;
  }
  window.alert( 'Width = ' + theW );
  window.alert( 'Height = ' + theH );
}

ตัวอย่างผลการเรียนกใช้งาน showSize();


ครั้งที่ 1 จะแสดง ขนาดความกว้าง

ครั้งที่ 2 จะแสดงขนาดความสูงของหน้าจอ

วันอาทิตย์ที่ 22 พฤศจิกายน พ.ศ. 2552

Image processing engine for camera digital

Olympus

Sony

Canon

นวัตกรรมใหม่น่าสนใจ Augmented Reallity

       การศึกษาภาพประกอบเสมือจริงนี้เป็นรูปแบบใหม่ของการนำเสนอข้อมูล โดยได้นำไปใช้งานได้หลากหลาย เช่น พิพิธภัณฑ์ การศึกษา ความบันเทิง งานวิจัย ระบบอุตสาหกรรม และการติดต่อสื่อการที่มีความทันสมัย AR หรอ Augmented Reality เป็นเทคโนโลยีล้ำสมัยปี 2010 ซึ่งเป็นเทคโนโลยีที่ผสานเอาโลกแหงความเป็นจริง (Real) เขากับโลกเสมือน (Virtual) โดยผ่านทางอุปกรณ์กล้องเว็บแคม (Web camera) กล้องมือถือ (Phone camera) และคอมพิวเตอร์ ร่วมกับการใช้ซอฟต์แวร์ ต่างๆ ซึ่งจะทำให้ภาพที่เห็นในจอภาพจะเป็น Object (คน, สัตว์, สิ่งของ, สัตว์ประหลาด, ยานอวกาศ) 2 มิติ และ 3 มิติ ซึ่งมีมุมมองมากถึง 360 องศา


       การเปลี่ยนแปลงความเป็นจริงเสมือน Immersive คือเทคนิคเพิ่มความเสมือนจริง Augmented Reality (AR) ที่ซึ่งดูเหมือนจะสนับสนุนระดับความสำเร็จของกราฟิกคอมพิวเตอร์เพื่อจากของจริงเน้นลักษณะเฉพาะและยกระดับขยายความเขาใจ “เทคนิคเพิ่มความเสมือนจริงคือการเพิ่มความเข้าใจของมนุษย์สนับสนุนข้อมูลข่าวสารที่ไม่ปกติที่พบเห็นจากความรู้สึกของมนุษย์ อธิบายว่า เทคโนโลยี AR จัดเตรียมวิธีการนำเสนอข้อมูลโดยเพิ่มสถานการณ์เพิ่มความรู้ความเข้าใจของโลกจริง สิ่งนี้ถูกยอมรับการแทนวัตถุเสมือนหรือสอดแทรกข้อมูลข่าวสารเข้าไปในโลกที่เป็นจริงผู้ใช้จะเป็นผู้มองเห็น” และได้จัดแบ่งชนิดของเทคนิคเพิ่มความเสมือนจริง (AR) ออกเป็น 4 ชนิด สามารถแยกชนิดได้ ดังนี้

1. Optical See-Through AR ผู้ใช้เห็นชัดเจนด้วย Head-mounted display (ผู้ใช้จะต้องสวมหมวกที่มีจอภาพไว้บนศีรษะ) เพื่อแสดงสิ่งแวดล้อมเสมือนได้ (VE) โดยตรงมากกว่าโลกจริง

2. Projector Based AR ใช้วัตถุโลกจริงเช่นเดียวกับการออกแบบพื้นผิวสำหรับ VE

3. Video See-Through AR ใช้ HMD ทึบแสงในการแสดงผสมผสานกับวีดีโอของ VE และมองจากล้องถ่ายรูปบน HMD

4. Monitor-Based AR ใช้ผสมผสานกับวีดีโอสตรีมแต่การแสดงน่าติดตามมากกว่าปกติหรือจับสิ่งแสดงได้ Monitor-Based AR คือความเป็นไปได้ยากเล็กน้อยที่จะติดตั้งเพราะมันจำกัดเนื้อหา HMD






       เทคนิคการเพิ่มความเสมือนจริงมีความสำคัญกับการทำให้ร่างกายให้แข็งแรง เนื่องจากเราสามารถนำเข้าไปผสานการทำงานร่วมกับระบบ Video-based ที่สามารถเลียนแบบสถานการณ์เล่นกอล์ฟจริงได้ โดยที่ห้องแล็บ Mixed Reality Lab ในโยโกฮามา ได้พัฒนาเพิ่มความ เสมือนจริงให้กับเกมส์กีฬาฮอกกี้ ผู้เล่นสามารถที่จะแบ่งเป็นไฟล์เกมส์ทางกายภาพ ไม้ตี และเกมส์ฮอกกี้เสมือนจะเล่นในอากาศ สิ่งสำคัญอย่างหนึ่งในการประยุกต์ข้อมูลสารสนเทศเทคนิคการเพิ่มความเสมือนจริงคือระบบสารสนเทศในช่องวางในอากาศสำหรับสำรวจสภาพแวดล้อมภายในเมือง รวมทั้งสิ่งแวดล้อมเกี่ยวกับการเคลื่อนที่ในที่ว่าง โดยเฉพาะงานวิจัยที่เกี่ยวกับเทคนิคเพิ่มความเสมือนจริงเคลื่อนที่ ใช้เคลื่อนที่และสวมใส่ระบบที่คำนวณไว้แล้วเดินไปที่รอบ









What is cuda programming? ยังต้องคิดต่อไป

ฝากไว้เดี๋ยวกลับมาเขียนครับ

สุดยอดเทคนิคกับ javaqt

เป็นอีกเทคนิคเกี่ยวกับการจัดการ Gui ของ java ซึ่งได้ใช้ความสามารถของ เทคโนโลยี javaqt มาใช้งานครับ หัวข้อนี้เอาไว้เป็นแนวๆ ครับ เดี๋ยวจะได้เอามาทดสอบให้ดูในหัวข้อต่อไปครับ

ภาพตัวอย่าง atjambi

วันพฤหัสบดีที่ 29 ตุลาคม พ.ศ. 2552

โลกเสมือน มีจริง

น่าสนใจนะครับ ดูแล้วสวยดี และแตกต่างด้วย

Retinex Image Processing

กว่าจะได้มาแก้ไขข้อมูลก็นานพอสมควรครับ พอดีเทอมนี้ต้องศึกษาเรื่องนี้ให้ได้ เพราะมันหลีกเลี่ยงไม่ได้ 5555


แนะนำเบื้องต้น


Retinex? คืออะไรเป็นคำถาม
เป็นขั้นตอนการวิธีปรับปรุงคุณภาพของรูปเพื่อการมองเห็นและการสื่อความหมายที่ดีขึ้นสำหร้บมนุษย์


Retinex ในยุคก่อนหน้านี้เป็นอย่างไร?

1. เกิดความสนใจที่จะศึกษาข้อมูลของ Edwin Land ค.ศ. 1986
2. เป็นโมเดลในเรื่องของแสงและสี ที่เกี่ยวข้องกับการมองเห็นของมนุษย์


ไม่มีงานวิจัยใด ๆ ที่จะช่วยการศึกษา และใช้ประสบการณ์ในการแก้ไขปัญหาที่เกิดขึ้น
1. เป็นกระบวนการทางความคิดของจินตนาการ เพื่อสร้างแนวทางในการแก้ไขปัญหาขึ้นมา
2. มีความเป็นอิสระของการแก้ไขปัญหา เนื่องจากปัญหามีมากมายให้แก้ไข




Retinex กับการนำไปใช้ประโยชน์


การตัดสินใจกับทุกอย่างที่คุณมี อาจจะนำปสู่ความสำเร็จที่มีคุณค่าได้
1. ความคมชัด ปรับปรุงส่วนของภาพที่เบลอด้วยการจัดรุปแบบที่เป็นขั้นเป็นตอน
2. คุณภาพของการประมวลสี ปรับปรุงการแสดงผลให้ดีขึ้น
3. การจัดลำดับของกลุ่มบนภาพอย่างอัตโนมัติ


เขียนมาเขียนต่อ เหอๆ

พรุ่งนี้ส่งงาน Play! project ฉบับสมบูรณ์


ยังไม่เรียบร้อยเลย น้อ จะทำอย่างไรดี คืนนี้คงไม่ต้องนอน กันอีกแล้ว

ข้างบนนี้ละครับ เจ้า Play! project



วันพุธที่ 28 ตุลาคม พ.ศ. 2552

แปลงเลขฐาน




Posted by Picasa

โปรแกรมนี้เก่งจริงนะ แต่ว่ายังไม่มี codec สำหรับการเล่น ffmpeg (.flv) นั่นเองครับ ขนาดเล็กดี ต้องตามหาประวัติต่อไป
Posted by Picasa
อีกเวอร์ชั่นนะครับ แต่ว่ายังไม่สมบูรร์อีกตามเคย แต่ต้องส่งพรุ่งนี้แล้ว ยังไงก็ต้องให้เสร็จ สุ้ ๆ

วันจันทร์ที่ 26 ตุลาคม พ.ศ. 2552

Tranformer v2


ทดสอบการอับโหลดรูปภาพปรากฏว่าอับได้จริงๆ ก็เลยมานั่งลองเขียนดูสิว่า blog เขาเขียนแล้วเป็นอย่างไรก็เพลิดดีนะครับ อยากระบายอะไรออกมาที่ไม่ไปรบกวนชาวบ้านเขา ก็คงจะได้ลองเขียนไปเรื่อยๆ แต่หนังเรื่องนี้สนุกมากดูไปตั้งหลายรอบ