21 กรกฎาคม 2552

http://www.mathworks.com/access/helpd...

Morphology Fundamentals: Dilation and Erosion
Dilation คือการเอาค่า maximum ใน neighborhood ทำให้ภาพพองออก
Erosion คือการเอาค่า minimum ใน neigborhood ทำให้ภาพเล็กลง (โดนกัดเซาะ)

Dilating an Image
BW = zeros(9,10);
BW(4:6,4:7) = 1
BW =
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 1 1 1 1 0 0 0
0 0 0 1 1 1 1 0 0 0
0 0 0 1 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0

SE = strel('square',3)
SE =

Flat STREL object containing 3 neighbors.

Neighborhood:
1 1 1
1 1 1
1 1 1


BW2 = imdilate(BW,SE)


ส่วน Erosion ทำตรงกันข้าม
BW1 = imread('circbw.tif');
SE = strel('arbitrary',eye(5));
SE=

Flat STREL object containing 5 neighbors.

Neighborhood:
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
BW2 = imerode(BW1,SE);
imshow(BW1)
figure, imshow(BW2)






ดังนั้น morphological opening  คือการทำ Erosion ตามด้วย Dilation ด้วยมิติที่เท่ากัน

สรุปคำสั่ง matlab

สรุปคำสั่ง matlab Example 1 — Reading and Writing Images
close all - ปิด figure
imread() - อ่านรูป
imshow() - แสดงรูป 
imtool() - แสดงรูป + ประมวลผลเบื้องต้น
whos -ดูตัวแปรที่ใข้งานอยู่
figure, imhist() - แสดง histogram ใน figure ใหม่
histeq() - กระจาย histogram / เพิ่ม Contrast
imwrite (I2, 'pout2.png'); - เขียนรูปลงไฟล์
imfinfo('pout2.png') - ดูข้อมูลไฟล์รูป


20 กรกฎาคม 2552

กลับสู่จุดพื้นฐาน

กลับสู่จุดพื้นฐาน
ตอนนี้ เรียนTutorial Image Processing Toolbox จาก matlab
ตั้งเป้าไว้ว่า อาทิตย์นี้จะต่อกล้องกับ Open CV
ดู Image Processing Toolbox จนประมวลผลภาพ นิ้วแตะกระจกให้ได้
ที่ค้างคามาหลายอาทิตย์แล้ว ไปยืมหนังสือ Engineering Computation with Matlab
แต่มีเรื่อง image Processing แค่บทเดียวแย่จัง พรุ่งนี้คงอ่านจบจะได้เอาไปคืนซักที


15 กรกฎาคม 2552

ต่อ Iphone กับ PC ด้วย Socket Program...

ต่อ Iphone กับ PC ด้วย Socket Programming
ก็คือการเขียนโปรแกรมผ่าน TCP/IP นั่นเอง โดยแบ่งเป็น 2 ฝั่ง คือ Client กับ Server
มี 2 อย่างที่ต้องกำหนด คือ address หรือ domain ก็ได้ อีกอย่างคือ port ของ Application
แต่ตอนนี้ไม่รู้ว่า Code ส่วน iPhone ของหมอที่ได้มาใช้ port อะไร ก็เลยยังต่อกันไม่ได้
search ดูหลายภาษา
ภาษา
ชื่อ socket library
VB,C#, VC++
winsock control
Python
socket

 ซึ่งดูไปแล้วเริ่มเขียนด้วย Python จะง่ายมากกว่า
ดูได้ที่ TCP-Socket (Python)
ซึ่งเราจะใช้ PC เป็นฝั่ง server โค้ดที่สำคัญ
# Time server program

from socket import *

import time



s = socket(AF_INET, SOCK_STREAM)     # Create TCP Socket

s.bind(("",8888))                    # Bind to port 8888

s.listen(5)                          # Start listening



while 1:

    client, addr = s.accept()    # Wait for connection

    print "Got a connection from ", addr

    client.send(time.ctime(time.time()))    # Sent time back

    client.close()


ลองดู Microsoft Robotics Studio

ลองดู Microsoft Robotics Studio
พอเข้าไปอ่านแล้วรู้สึกว่า สถาปัตยกรรมมันเจ๋งมากเลย
แต่น่าจะมีข้อเสียคือเรื่องหา จากการต้องเพิ่งพาการส่งข้อมูลด้วย XML
แต่ก็ได้ข้อดีในการรันหลาย Platform มาด้วย

แหล่งเรียนรู้
  1. On-Demand Videos and Screen-Casts
  2. หนังสือจาก ห้องสมุด Programming microsoft Robotics Studio By Sara Morgan Microsoft Press
  3. Virtual Programming Language:VPL Tutorials Overview


สิ่งที่ทำไปแล้ว ทดลองรัน Tutorial ของ VPL กับ เจมส์
  1. รัน Tutorial 1 + ปรับแต่ง


  2. รัน Tutorial 2 + ปรับแต่ง


  3. รัน Tutorial 3

  4. รัน Tutorial 4 + ปรับแต่ง มีการ Simulation lego NXT ด้วย PhyX



02 กรกฎาคม 2552

ความรักระหว่างหุ่นยนต์ 2 เผ่าพันธ์ มอ...

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



เอาวีโมท(Wiimote)ควบคุม เลโก้เน็ค(Leg...

เอาวีโมท(Wiimote)ควบคุม เลโก้เน็ค(Lego NXT)
ดาวน์โหลด WiimoteControllNXT
หลักการ
    ต่อ wiimote กับคอมพิวเตอร์ผ่าน Bluetooth แล้วอ่านค่าการกดปุ่มด้วย
อีกส่วนหนึ่งคือการต่อ NXT กับ คอมพิวเตอร์ ผ่าน Bluetooth เช่นกัน แล้วควบคุมด้วย AForge.Net library
สิ่งที่ต้องการ
  1. Microsoft Visual C#
  2. AForge.Net
  3. WiimoteLib
Codeที่สำคัญ
เชื่อมต่อกับ NXT
            if (nxt.Connect("COM7"))
            {
                int power;
                nxt.GetBatteryPower(out power);
                System.Diagnostics.Debug.WriteLine(power);
                System.Diagnostics.Debug.WriteLine("Connected successfully ");
            }
            else
            {
                MessageBox.Show("Failed connecting to NXT device", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

เชื่อมต่อกับ wiimote
            wm.WiimoteChanged += new WiimoteChangedEventHandler(wm_WiimoteChanged);
            wm.WiimoteExtensionChanged += new WiimoteExtensionChangedEventHandler(wm_WiimoteExtensionChanged);
            wm.Connect();
การเช็ตค่าให้มอเตอร์ วิ่ง
            NXTBrick.MotorState motorStateGo = new NXTBrick.MotorState();
            WiimoteState ws = args.WiimoteState;
            //set motorState Go
            motorStateGo.Power = (sbyte)127;
            motorStateGo.TurnRatio = (sbyte)50;
            motorStateGo.Mode = NXTBrick.MotorMode.On;// NXTBrick.MotorMode.Brake, NXTBrick.MotorMode.None, NXTBrick.MotorMode.Regulated
            motorStateGo.RunState = runStates[2]; //0:Idle, 1:RampUp, 2:Running, 3:RampDown
การเช็คค่าให้มอเตอร์ หยุด
            NXTBrick.MotorState motorStateStop = new NXTBrick.MotorState();
            //set motorState Stop
            motorStateStop.Power = (sbyte)0;
            motorStateStop.TurnRatio = (sbyte)0;
           
motorStateStop.Mode = NXTBrick.MotorMode.None;//
NXTBrick.MotorMode.Brake, NXTBrick.MotorMode.None,
NXTBrick.MotorMode.Regulated
            motorStateStop.RunState = runStates[0]; //0:Idle, 1:RampUp, 2:Running, 3:RampDown
เมื่อกดปุ่มซ้ายให้มอเตอร์ C หมุน
            if (ws.ButtonState.Left)
            {
                // set motor's state
                if (nxt.SetMotorState(NXTBrick.Motor.C, motorStateGo) != true )
                {
                    System.Diagnostics.Debug.WriteLine("Failed setting motor state");
                }
            }


18 มิถุนายน 2552

เริ่มศึกษา openCV

เริ่มศึกษา openCV
  1. อ่านที่ wikipedia ก่อนเลย
  2. Download รุ่น 1.0 และ install
  3. Config[Eng|Thai] openCV กับ Visual c++2008
    1. Note*ไม่ต้องลอง HelloWorld มันง่ายไปลองข้อ 4 เลยดีกว่า
  4. ทดลองสร้าง first image processing project ด้วย A step-by-step guide to the use ofMicrosoft Visual C++and the Intel OpenCV library


16 มิถุนายน 2552

แปลง PowerPoint ไปเป็น PDF แบบไร้ขอบ

แปลง PowerPoint ไปเป็น PDF แบบไร้ขอบ

  1. ติดตั้งโปรแกรม PDFCreater วิธีติดตั้งและใช้งานเบื่องต้น
  2. เปิดไฟล์ PowerPoint
  3. ไปที่ print หรือกด Ctrl + P

    4.เลือก
    Printer เป็น PDFCreater
    Print what : Slides
    Color/grayscale: Color

    5.คลิก Properties  ตั้งค่า
    Orientation : Lanscape
    Page Per Sheet : ตามจำนวนที่ต้องการ ตัวอย่างนี้ใช้ 4

    6.แล้วคลิก ok 2 ครั้งรอซักครู่ จะปรากฏ คลิก Save

    7.เลือกที่ที่จะ
    save

    8.รอซักครู จะได้ ไฟล์
    PDF ที่ไร้ขอบ

 

 

 

 


14 มิถุนายน 2552

Fail to download 1.5 million tiny ima...

Fail to download 1.5 million tiny images
File type is tar with size 3.5 Gbytes
I used to flashget download manager but it doesn't resume download after offline
I tryed download it 5 time.
So sad

Group Meeting Meterial

Group Meeting Meterial
Fake Finger Detection by Finger Color Change Analysis Download
    how to detection change colur of finger whe it touching a hard surface
80 Million Tiny Images Link
    large image label dataset download for lering data for object recognition 
Label Me Link
    Label all object in the world

10 มิถุนายน 2552

roller coaster

"roller coaster Edit
มาแล้วคลิป Roller Closerter ของเล่นจาก อ.สยาม ในวิชาสัมนา
มาดูว่าใครได้เป็นดาราหน้ากล้องกันบ้าง
http://www.youtube.com/watch?v=XHIK9Ee_grA
จริงๆมีของเล่นอื่นๆอีกมากมาย แต่ถ่ายทำไม่ทัน เช่น wii, ร่มแบบกางหุบ(แต่ยังไม่เสร็จภายในปุ่มเดียว)

04 มิถุนายน 2552

16 พฤษภาคม 2552

เล่าเรื่องเที่ยวทะเล

วันที่ 8 พฤษาคม ที่ผ่านมาได้ย้ายของเข้าหอ
ใกล้ๆ หน้า ม.พระจอมเกล้าธนบุรี
หอถึงแม้จะอยู่นอกม. แต่ก็สามารถมองเห็นที่ ตึกมูลนิธิไทยคม
ที่ใช้เป็นที่เรียนได้อย่างชัดเจน ชื่อหอ คอมมอส แมนชั่น
ถ้าใครรู้จักก็แวะมาหาได้ แล้วก็ต่อด้วยการเที่ยวทะเลกับที่บ้าน
สนุกมากมาย ถ่ายรูป มาฝากให้ดูด้วย
ตอนนี้ก็ใกล้เปิดเทอมเต็มที คิดมีความสุขจะได้ไม่ว่างงานซักที

ใครอยากรู้ว่าไปเที่ยวทะลที่ไหนมาดูได้จากในรูปเลย