หลังจากไม่ได้แตะ linux มานานมากกกก ด้วยไม่มีเวลาและไม่แน่ใจว่า linux จะสนับสนุนอุปกรณ์อย่างเพียงพอแล้วหรือยัง
ช่วงนี้ได้โอกาส เลยลองติดตั้ง Ubuntu 12.04 .....สวย แต่หน้าตาและการใช้งานไม่คุ้นเลย ต่างกับวินโดวส์พอสมควร
ไปค้นหาในเน็ต เว็บ distrowatch.com ให้ข้อมูลว่า page hit ในช่วงเดือนของ Linux Mint สูงกว่าใครเพื่อน อย่างนี้ต้องลอง
ไปดาวน์โหลด iso ที่ linuxmint.com มา มี mint4win สำหรับให้ติดตั้งบนวินโดวส์แบบ wubi ชอบมากๆ ไม่อยากไปปวดหัวกับการแบ่งพาร์ทิชันกับเอา grub ออกตอนเลิกใช้
ผลการทดลอง
1. mint เหมือนกับ ubuntu ยังกับแกะ เนื่องจากมีฐานมาจาก debian เหมือนกัน และยังออกตาม release ของ ubuntu ด้วย (แต่ตอนหลังรู้สึกว่าจะไม่)
2. มี mint4win เหมือน wubi เป๊ะ
3. ติดตั้งง่าย รวดเร็ว น่าจะเร็วกว่าวินโดวส์มากพอควร
ข้อด้อย
1. สนับสนุนฮาร์ดแวร์คล้ายๆกัน หาอะไรไม่เจอก็ไม่เจอเหมือนกัน เช่น ไม่เจอ wireless usb adapter ของ d-link dw-125 :( ต้องหาวิธีติดตั้งในเน็ต (http://kaustav.codebinders.com/2011/10/install-dwa-125-wireless-driver-on-ubuntu-11-10.html)
2. ยังมีปัญหากับ switchable graphics ทำให้ผมลงบนโน้ตบุ้คแบบนี้ไม่ได้ เครื่องจะร้อนตลอดเวลา
ข้อเด่น
1. สวย สวยกว่า ubuntu ด้วย
2. หน้าจอคล้ายวินโดวส์ ใช้งานง่ายกว่า ubuntu
3. เรียกใช้ terminal ง่ายกว่า คลิกขวาก็เรียกได้
4. อะไรที่ใช้ได้กับ ubuntu ก็ใช้ได้กับ mint แก้ปัญหาก็เหมือนๆกัน
5. ฟอนต์ไทยที่มีมาให้มีน้อยกว่า ubuntu
โดยรวมแล้วถ้าเครื่องคอมฯใครไม่มีอุปกรณ์ต่อพ่วงที่แปลกๆ mint หรือ ubuntu ก็น่าจะสนับสนุนเต็มที่โดยไม่ต้องลงอะไรเพิ่ม ฟรีและสวยแบบนี้ น่าลองครับ
Saturday, March 3, 2012
Wednesday, December 21, 2011
OpenCV 2.31 + QT support
ลอง compile ซอร์สโค้ด OpenCV 2.31 ให้ support QT+OpenGL ครับ เห็นอินเตอร์เฟสที่โชว์ในเว็บแล้วสวยดี
แต่ๆๆๆ ผลลัพธ์ที่ได้
มีข้อความว่า ตอนนี้ไม่สามารถใช้ OpenGL rendering กับการกำหนดสัดส่วนของหน้าต่างได้ ขนาดของรูปที่เล็กกว่า menu bar ด้านบน จึงทำได้รูปเบี้ยวไม่ได้สเกล :( ถ้ารูปกว้างกว่าแถบ menu ก็จะไม่เบี้ยว
ข้อดี
มีเมนูบาร์ สำหรับการ pan ซ้ายขวา บนล่าง ซูมเข้าออก เซฟผลลัพธ์ รวมถึงถ้าวางเมาส์บนรูป จะแสดงพิกัด x y และค่าพิกเซล
ข้อควรปรับปรุง
บักที่ทำให้รูปที่เล็กกว่าเมนูบาร์เบี้ยว
แต่ๆๆๆ ผลลัพธ์ที่ได้
มีข้อความว่า ตอนนี้ไม่สามารถใช้ OpenGL rendering กับการกำหนดสัดส่วนของหน้าต่างได้ ขนาดของรูปที่เล็กกว่า menu bar ด้านบน จึงทำได้รูปเบี้ยวไม่ได้สเกล :( ถ้ารูปกว้างกว่าแถบ menu ก็จะไม่เบี้ยว
ข้อดี
มีเมนูบาร์ สำหรับการ pan ซ้ายขวา บนล่าง ซูมเข้าออก เซฟผลลัพธ์ รวมถึงถ้าวางเมาส์บนรูป จะแสดงพิกัด x y และค่าพิกเซล
ข้อควรปรับปรุง
บักที่ทำให้รูปที่เล็กกว่าเมนูบาร์เบี้ยว
Visual C++ Express 2010 กับ OpenCV 2.31
ถึงเวลาที่ต้องมาใช้ VC++ จนได้ เพราะอยากเอาโค้ดไปเชื่อมกับ Matlab ผ่าน mex file และต้องเชื่อมกับ OpenCV ต่อไป
วิธีการติดตั้ง VC++ เพื่อให้ใช้ได้กับ OpenCV ดูตาม http://opencv.willowgarage.com/wiki/VisualC%2B%2B_VS2010_CMake ได้ครับ ถ้ามีเวลาคงมาสรุปเป็นภาษาไทยอีกครั้ง
ผลการทำพบว่า คอมไพล์ซอร์สโค้ดก็ไม่ยากครับ แต่ไม่สามารถสร้างตัวไบนารีแบบ install ได้ ผมเข้าใจว่ามี bug เล็กน้อยใน makefile ตอนกำหนดไดเรกทอรี อย่างไรก็ตามถ้าก๊อปไฟล์เองก็ใช้งานได้
ปัญหาถัดมา เมื่อทดสอบกับซอร์สโค้ด OpenCV ทำการ build ผ่านไม่มีปัญหาครับ แต่ว่าตอน Debug ไม่ผ่าน ต้องไปรันไฟล์ต่างหากเอง ไม่รู้ว่าเพราะอะไร เซิร์ชหาก็ยังไม่เจอวิธีแก้ครับ คงต้องหลับหูหลับตาผ่านไปก่อน
ข้อดีของ Visual C++ กับ OpenCV
-ตัว auto complete ของ IDE VC++ นี่ดีจริงๆ แต่อืดเหมือนกัน
-Build ง่าย เลือก Debug หรือ Release เวอร์ชันก็ง่าย ขนาดไฟล์ผลลัพธ์เล็ก
-มีคนใช้เยอะ พอเจอปัญหาน่าจะหาทางแก้ง่าย
ปัญหาที่เจอ
-ทำตามคู่มือแล้วแต่คอมไพล์แบบ install ยังไม่สมบูรณ์
-Debug ไม่ผ่าน :( สงสัยผมจะลืมขั้นตอนอะไรไป
วิธีการติดตั้ง VC++ เพื่อให้ใช้ได้กับ OpenCV ดูตาม http://opencv.willowgarage.com/wiki/VisualC%2B%2B_VS2010_CMake ได้ครับ ถ้ามีเวลาคงมาสรุปเป็นภาษาไทยอีกครั้ง
ผลการทำพบว่า คอมไพล์ซอร์สโค้ดก็ไม่ยากครับ แต่ไม่สามารถสร้างตัวไบนารีแบบ install ได้ ผมเข้าใจว่ามี bug เล็กน้อยใน makefile ตอนกำหนดไดเรกทอรี อย่างไรก็ตามถ้าก๊อปไฟล์เองก็ใช้งานได้
ปัญหาถัดมา เมื่อทดสอบกับซอร์สโค้ด OpenCV ทำการ build ผ่านไม่มีปัญหาครับ แต่ว่าตอน Debug ไม่ผ่าน ต้องไปรันไฟล์ต่างหากเอง ไม่รู้ว่าเพราะอะไร เซิร์ชหาก็ยังไม่เจอวิธีแก้ครับ คงต้องหลับหูหลับตาผ่านไปก่อน
ข้อดีของ Visual C++ กับ OpenCV
-ตัว auto complete ของ IDE VC++ นี่ดีจริงๆ แต่อืดเหมือนกัน
-Build ง่าย เลือก Debug หรือ Release เวอร์ชันก็ง่าย ขนาดไฟล์ผลลัพธ์เล็ก
-มีคนใช้เยอะ พอเจอปัญหาน่าจะหาทางแก้ง่าย
ปัญหาที่เจอ
-ทำตามคู่มือแล้วแต่คอมไพล์แบบ install ยังไม่สมบูรณ์
-Debug ไม่ผ่าน :( สงสัยผมจะลืมขั้นตอนอะไรไป
Thursday, December 15, 2011
งงกับการ link ของ g++
ทดลองคอมไพล์ซอร์สโค้ดของคนอื่น ด้วย g++ (mingw) บนวินโดวส์
Makefile ของเจ้าของเป็นบน unix
ส่วนของการคอมไพล์ไม่มีปัญหา พอมาลิงก์ แสดงผลว่า undefined reference xxx
อะไรเนี่ย นั่งงมเปิดนั่น โหลดนี่ เซิร์ชหาคำตอบทั่วเน็ต ยอมแม้กระทั่งคอมไพล์ไลบรารีตัวอื่นที่เกี่ยวข้องใหม่หมด
สุดท้าย คำตอบอยู่ที่การเรียงลำดับคำสั่งของ g++
คอมไพล์
g++ -Ixxx -c input.cpp -o output.o
เหมือนกันทั้ง unix และ windows (xxx คือตำแหน่งของ include files)
ลิงก์ (สมมติว่าสร้าง dynamic library)
-unix
g++ -Lyyy -lzzz -shared output.o -o libxyz.so
-windows
g++ -shared output.o -o libxyz.so -Lyyy -lzzz
(yyy คือตำแหน่งของ library file, zzz คือชื่อ library)
ต่างกันแค่เนี้ยยยย งมไปงมมาจนมึน
สุดท้ายใช้การได้ แต่เจ้าของโค้ดดันออกแบบให้ได้เฉพาะแบบของเขาซะอีก ต้องไปแก้โค้ดอีกเยอะเลย เฮ้อ
ไม่ใช้ซะดีไหมเนี่ย
Makefile ของเจ้าของเป็นบน unix
ส่วนของการคอมไพล์ไม่มีปัญหา พอมาลิงก์ แสดงผลว่า undefined reference xxx
อะไรเนี่ย นั่งงมเปิดนั่น โหลดนี่ เซิร์ชหาคำตอบทั่วเน็ต ยอมแม้กระทั่งคอมไพล์ไลบรารีตัวอื่นที่เกี่ยวข้องใหม่หมด
สุดท้าย คำตอบอยู่ที่การเรียงลำดับคำสั่งของ g++
คอมไพล์
g++ -Ixxx
เหมือนกันทั้ง unix และ windows (xxx คือตำแหน่งของ include files)
ลิงก์ (สมมติว่าสร้าง dynamic library)
-unix
g++ -Lyyy
-windows
g++ -shared output.o -o libxyz.so -Lyyy
ต่างกันแค่เนี้ยยยย งมไปงมมาจนมึน
สุดท้ายใช้การได้ แต่เจ้าของโค้ดดันออกแบบให้ได้เฉพาะแบบของเขาซะอีก ต้องไปแก้โค้ดอีกเยอะเลย เฮ้อ
ไม่ใช้ซะดีไหมเนี่ย
Saturday, November 26, 2011
Speed Test
วันนี้ว่างๆเลยลองมาทดสอบความเร็ว (แบบบ้านๆ) กับการเข้าถึงพิกเซลของสามโปรแกรม คือ MATLAB, OpenCV (C++) และ ImageJ (JAVA) โดยใช้รูปขนาด 256x256 pixels มาทำ image negative (inverse) ด้วยโค้ดปกติของแต่ละอัน นั่นคือ
ต่อมา ทดลองเพิ่มขนาดรูปเป็น 2550x1900 พิกเซล เวลาโดยประมาณเป็น 0.006, 0.05, 0.12 วินาทีตามลำดับ
เห็นตัวเลขแล้วแปลกๆ ทำไม MATLAB ถึงได้เร็วขนาดนี้ แสดงว่าถ้าประมวลผลทีละพิกเซล MATLAB มีการ optimize โค้ดแบบเมตริกซ์ที่ดีมาก
โอกาสต่อไปจะลองทำการ convolution แล้วมาเทียบกันดูครับ
- MATLAB ใช้ J = 255-I;
- OpenCV และ ImageJ ใช้ลูป 1 ชั้น ประมวลผลรูปแบบเวกเตอร์
ต่อมา ทดลองเพิ่มขนาดรูปเป็น 2550x1900 พิกเซล เวลาโดยประมาณเป็น 0.006, 0.05, 0.12 วินาทีตามลำดับ
เห็นตัวเลขแล้วแปลกๆ ทำไม MATLAB ถึงได้เร็วขนาดนี้ แสดงว่าถ้าประมวลผลทีละพิกเซล MATLAB มีการ optimize โค้ดแบบเมตริกซ์ที่ดีมาก
โอกาสต่อไปจะลองทำการ convolution แล้วมาเทียบกันดูครับ
Subscribe to:
Posts (Atom)