CALL เป็นวิธีการเรียกไฟล์ batch อื่น (ไฟล์ batch ที่ถูกเรียก) ภายในไฟล์ batch ที่รันอยู่ (ไฟล์ batch ที่เรียก) แล้วกลับมายังไฟล์ batch ที่เรียก โดยไม่ยกเลิกการประมวลผลของไฟล์ที่เรียก และมีการใช้สภาพแวดล้อมเดียวกันสำหรับไฟล์ batch ที่เรียกและไฟล์ batch ที่ถูกเรียก
CALL is the way to call another batch file within a batch file and return to the caller without aborting the execution of the calling batch file, and using the same environment for both batch files.
START เป็นวิธีการเริ่มโปรแกรมในหน้าต่าง cmd.exe ใหม่ ดังนั้นมันสามารถรันไฟล์ batch ที่ถูกเรียกได้พร้อมกัน
START is the way to start a program in a new cmd.exe instance, so it can run a called batch file asynchronosly
Menu
Friday, November 29, 2013
[Batch Script] วิธีการเปิดเบราว์เซอร์ Chrome ด้วยตำแหน่งที่ต่างกัน
[Batch Script] How to Open Chrome Browsers with Difference Position
สมมติว่า ;C:\Program Files (x86)\Google\Chrome\Application ถูกเพิ่มไปยังพาธของระบบ
Suppose that ;C:\Program Files (x86)\Google\Chrome\Application is added to system path
สำหรับการเปิดเบราว์เซอร์ Chrome 2 เบราว์เซอร์ด้วยตำแหน่งที่ต่างกัน ลองสคริปต์ด้านล่าง
For opening two Chrome browsers with difference position, try below script
หมายเหตุ: ปิดเบราว์เซอร์ Chrome ทั้งหมดก่อนรันสคริปต์นี้
Suppose that ;C:\Program Files (x86)\Google\Chrome\Application is added to system path
สำหรับการเปิดเบราว์เซอร์ Chrome 2 เบราว์เซอร์ด้วยตำแหน่งที่ต่างกัน ลองสคริปต์ด้านล่าง
For opening two Chrome browsers with difference position, try below script
start chrome --window-position=100,100 --new-window start chrome --window-position=400,400 --new-window
หมายเหตุ: ปิดเบราว์เซอร์ Chrome ทั้งหมดก่อนรันสคริปต์นี้
Notice: Close all Chrome browsers before running this batch script
[JS] วิธีการส่งไฟล์และข้อมูลจากฟอร์มโดยไม่ใช้การส่งค่าจากฟอร์ม
[JS] How to Send File with Form Data without Form Submission
jQuery และ Ajax ถูกใช้อัพโหลดไฟล์จากฟอร์ม HTML ไปยังเซิร์ฟเวอร์โดยไม่ใช้การส่งค่าจากฟอร์ม
jQuery and Ajax is used to upload file from HTML form to server without form submission
สมมติว่า ฟอร์ม HTML เป็นตามด้านล่าง
Assume that HTML form is below
jQuery and Ajax is used to upload file from HTML form to server without form submission
สมมติว่า ฟอร์ม HTML เป็นตามด้านล่าง
Assume that HTML form is below
<form id="form-id" action="upload.php" enctype="multipart/form-data" method="post"> <table style="width: 100%;"> <tbody> <tr> <th><label for="id_path_program">Path program:</label></th> <td><input id="id_path_program" name="path_program" type="file"></td> </tr> <tr> <th><label for="id_description">Description:</label></th> <td><input id="id_description" maxlength="250" name="description" type="text"></td> </tr> </tbody> </table> <input type="submit" value="Upload"/> </form>
Monday, November 4, 2013
[Batch Script] วิธีรันไฟล์แบทช์ทั้งหมดภายในแฟ้มที่กำหนด
[Batch Script] How to Run All Batch Files within Specific Folder
ถ้าคุณมีไฟล์แบทช์มากมาย คุณไม่จำเป็นต้องรวมมันมาไว้ในไฟล์เดียวเพื่อรัน
If you have many batch files, you are not necessary to merge them into one file
If you have many batch files, you are not necessary to merge them into one file
สคริปต์แบทช์เป็นตามด้านล่าง
Batch script is below
- @echo off
- FOR %%x IN ("path_batch_folder\*.bat") DO call "%%x"
โดยที่ path_batch_folder คือ ตำแหน่งของแฟ้มที่เก็บไฟล์แบทช์
where path_batch_folder is a path of folder of batch files
Tuesday, October 29, 2013
[Batch Script] คำสั่งและตัวเลือกสำหรับบราวเซอร์ Chrome
[Batch Script] Chrome Browser Command Line
สมมติว่า ;C:\Program Files (x86)\Google\Chrome\Application ถูกเพิ่มไปยัง system path (ตาม วิธีการเพิ่มค่าใหม่ใน System Path)
Suppose that ;C:\Program Files (x86)\Google\Chrome\Application is added to system path (follow How to Add New Values to System Path)
เพื่อเปิดบราวเซอร์ Chrome ใช้คำสั่ง
To open Chrome browser, use command
เพื่อเปิด URL ที่ต้องการด้วยบราวเซอร์ Chrome ใช้คำสั่ง
To open Chrome browser with specified URL, use command
Suppose that ;C:\Program Files (x86)\Google\Chrome\Application is added to system path (follow How to Add New Values to System Path)
เพื่อเปิดบราวเซอร์ Chrome ใช้คำสั่ง
To open Chrome browser, use command
start chrome
เพื่อเปิด URL ที่ต้องการด้วยบราวเซอร์ Chrome ใช้คำสั่ง
To open Chrome browser with specified URL, use command
start chrome "url"
[Batch Script] วิธีการหาพาธของแฟ้มของไฟล์ Batch ที่กำลังประมวลผล
[Batch Script] How to Get Directory Path of Executing Batch File
เพื่อเข้าไปยังแฟ้มของไฟล์ batch ที่กำลังประมวลผล ใช้คำสั่ง
To get into directory path of executing batch file, use command
To get into directory path of executing batch file, use command
cd /d %~dp0
Friday, October 25, 2013
[FFmpeg] วิธีการติดตั้ง FFmpeg สำหรับ Windows 7
[FFmpeg] How to Install FFmpeg for Windows 7
ขั้นแรก ดาวน์โหลด FFmpeg จาก http://ffmpeg.zeranoe.com/builds/
First, download FFmpeg from http://ffmpeg.zeranoe.com/builds/
แตกไฟล์ที่ดาวน์โหลดมาด้วย 7-zip ไว้ที่ C:/
Extract downloaded file with 7-zip to C:/
เปลี่ยนชื่อแฟ้มที่ได้จากการแตกไฟล์เป็น ffmpeg
Rename extracted folder to ffmpeg
First, download FFmpeg from http://ffmpeg.zeranoe.com/builds/
แตกไฟล์ที่ดาวน์โหลดมาด้วย 7-zip ไว้ที่ C:/
Extract downloaded file with 7-zip to C:/
เปลี่ยนชื่อแฟ้มที่ได้จากการแตกไฟล์เป็น ffmpeg
Rename extracted folder to ffmpeg
Tuesday, October 22, 2013
[EmguCV] วิธีการตั้งค่า EmguCV สำหรับ Visual C#
[EmguCV] How to Set EmguCV for Visual C#
ดาวน์โหลด EmguCV จาก http://sourceforge.net/projects/emgucv/ แล้วติดตั้ง
Download EmguCV from http://sourceforge.net/projects/emgucv/ then install
สร้างโปรเจคใหม่เป็น Windows Form Application
Create new Window Form Application project
เพิ่มไลบรารี่ EmguCV โดยไปที่ Solution Explorer คลิกขวาที่แฟ้ม References แล้วเลือกAdd Reference…
Add EmguCV Library by right click on References within Solution Explorer then select Add Reference...
Download EmguCV from http://sourceforge.net/projects/emgucv/ then install
สร้างโปรเจคใหม่เป็น Windows Form Application
Create new Window Form Application project
เพิ่มไลบรารี่ EmguCV โดยไปที่ Solution Explorer คลิกขวาที่แฟ้ม References แล้วเลือกAdd Reference…
Add EmguCV Library by right click on References within Solution Explorer then select Add Reference...
[VirtualBox] วิธีแก้ไขปัญหา "Attempting to load 64 bit however this CPU is not compatible with 64 bit mode" สำหรับการลง Window 7 64 bit
[VirtualBox] How to Fix Problem: "Attempting to load 64 bit however this CPU is not compatible with 64 bit mode" on Window 7 64 bit Installation
ปัญหานี้จะแสดงดังภาพด้านล่างหลังจากพยายามลง Window 7 64 bit
This problem is shown as image below after attempting to install Window 7 64 bit
การแก้ข้อผิดพลาด คือ เข้าไป enable virtualization ใน BIOS
To fix error, enable virtualization setting inside BIOS
To fix error, enable virtualization setting inside BIOS
Monday, October 21, 2013
[C#] วิธีการเขียนไฟล์ข้อความ
[C#] How to Write Text File
ขั้นแรก เพิ่มประโยค using ตามด้านล่าง
First, add using statement
- using System.IO.StreamWriter;
ขั้นที่สอง ประกาศและนิยามออบเจ็ค StreamWriter ใหม่ เพื่อเขียนไฟล์ข้อความไปที่ file_path
Second, declare and define new StreamWriter object to write text file at file_path
- StreamWriter file = new StreamWriter(file_path);
Wednesday, October 16, 2013
[EmguCV] การแปลงภาพแบบ Affine
[EmguCV] Affine Transformation
การแปลงภาพแบบ Affine คือ การฉายจุดลงบนฉากรับภาพตามแนวเส้นขนาน นั่นคือ การแปลงภาพที่ยังคงรักษาความขนานของเส้นเอาไว้
Affine transformation is the projection of points onto the image plane along parallel.
ขั้นแรก โหลดภาพตั้งต้นเข้าตัวแปร img
First, load a source image to img
Affine transformation is the projection of points onto the image plane along parallel.
ขั้นแรก โหลดภาพตั้งต้นเข้าตัวแปร img
First, load a source image to img
- Image<Bgr, byte> img = new Image<Bgr, byte>(image_path);
Source Image |
Tuesday, October 15, 2013
[EmguCV] วิธีการเข้าถึงพิกเซลของภาพ
[EmguCV] How to Access Pixels of Image
สมมติให้
Suppose that
Suppose that
- Image<Bgr,byte> img = new Image<Bgr,byte>();
มีสองวิธีสำหรับการเข้าถึงพิกเซลตำแหน่งแถวที่ y และหลักที่ x ของ img
There are two ways to access the pixel on the y-th row and x-th column of img
Monday, October 14, 2013
[EmguCV] ทำไมขนาดข้อมูลของภาพแตกต่างจากขนาดของภาพ
[EmguCV] Why Image Data Size is different from Image Size
สมมติให้
Suppose that- Image<Bgr,byte> img = new Image<Bgr,byte>(73,100);
ค่าของ img.Cols และ img.Width จะเป็น 73 แต่ค่าของ img.Data.GetLength(1) จะเป็น 76.
The value of img.Cols and img.Width are 73 but the value of img.Data.GetLength(1) is 76.
อย่างไรก็ตาม ค่าของ img.Rows, img.Height, และ img.Data.GetLength(0) จะมีค่าเท่ากัน คือ 100
However, the value of img.Rows, img.Height, and img.Data.GetLength(0) are the same which are 100
สาเหตุนี้เป็นเพราะ EmguCV ต้องการจัดเรียงแต่ละแถวของภาพให้มีขนาดเป็นจำนวนเท่าของ 4 ไบต์เพื่อเพิ่มประสิทธิภาพในการดึงข้อมูล
This is because EmguCV requires each row of image to be aligned by 4 bytes to improve efficiency in fetching data.
Wednesday, October 9, 2013
[EmguCV] การแปลงภาพแบบ Perspective
[EmguCV] Perspective Transformation
Perspective transformation is the projection of points onto the image plane along lines that emanate from a single point, called the center of projection.
ขั้นแรก โหลดภาพตั้งต้นเข้าตัวแปร img
First, load a source image to img
- Image<Bgr, byte> img = new Image<Bgr, byte>(image_path);
Source image |
Tuesday, October 8, 2013
[HTML] วิธีการเปลี่ยน In-page Style Tag เป็น Inline Style Attribute
[HTML] How to Change In-page Style Tags to Inline Style Attribute
เนื่องจากบางอีเมลล์ไคลเอนต์ เช่น gmail ไม่สนับสนุน in-page style tags (<style></style>) เทมเพลต HTML สำหรับอีเมลล์ จึงต้องเปลี่ยนเป็น inline style attribute (<a style=""></a>)
Due to some email client, such as gmail, does not support in-page style tags (<style></style>), the HTML template for email must be changed to inline style attribute (<a style=""></a>)
เทมเพลต HTML สามารถเปลี่ยนได้ที่ http://beaker.mailchimp.com/inline-css
HTML template can be changed at http://beaker.mailchimp.com/inline-css
Due to some email client, such as gmail, does not support in-page style tags (<style></style>), the HTML template for email must be changed to inline style attribute (<a style=""></a>)
เทมเพลต HTML สามารถเปลี่ยนได้ที่ http://beaker.mailchimp.com/inline-css
HTML template can be changed at http://beaker.mailchimp.com/inline-css
[EmguCV] วิธีการสร้างภาพพื้นหลังจากชุดของภาพ
[EmguCV] How to Create Background Image from a series of images
ในกรณีนี้ กล้องถ่ายภาพจำเป็นต้องถูกยึดอยู่กับที่
In this case, a camera must be stationary.
นั่นหมายความว่า ภาพพื้นหลังจะเหมือนกันทุกภาพ ในขณะที่วัตถุจะมีการปรากฏขึ้นเพียงบางภาพเท่านั้น
That mean background are the same for each image while objects (foreground) will appear in only few images.
ดังนั้น ภาพพื้นหลังสามารถสร้างได้ โดยการเฉลี่ยชุดของภาพ
Therefore, background can be created by averaging a series of images.
In this case, a camera must be stationary.
นั่นหมายความว่า ภาพพื้นหลังจะเหมือนกันทุกภาพ ในขณะที่วัตถุจะมีการปรากฏขึ้นเพียงบางภาพเท่านั้น
That mean background are the same for each image while objects (foreground) will appear in only few images.
ดังนั้น ภาพพื้นหลังสามารถสร้างได้ โดยการเฉลี่ยชุดของภาพ
Therefore, background can be created by averaging a series of images.
Monday, September 30, 2013
[Kinect] การตั้งค่า Microsoft Kinect SDK สำหรับ Visual C#
[Kinect] Microsoft Kinect SDK Setting for Visual C#
เริ่มต้นด้วยการดาวน์โหลด Kinect for Windows SDK และ Kinect for Windows Developer Toolkit จาก http://www.microsoft.com/en-us/kinectforwindowsdev/Start.aspx แล้วทำการติดตั้ง
First, download Kinect for Windows SDK and Kinect for Windows Developer Toolkit from http://www.microsoft.com/en-us/kinectforwindowsdev/Start.aspx then install them
ขั้นต่อไป สร้าง Windows Forms Application ใน Visual C#
Second, create Windows Forms Application on Visual C#
ไปที่ Solution Explorer คลิ๊กขวาที่ References แล้วเลือก Add Reference...
Go to Solution Explorer then right click at References and select Add Reference...
First, download Kinect for Windows SDK and Kinect for Windows Developer Toolkit from http://www.microsoft.com/en-us/kinectforwindowsdev/Start.aspx then install them
ขั้นต่อไป สร้าง Windows Forms Application ใน Visual C#
Second, create Windows Forms Application on Visual C#
ไปที่ Solution Explorer คลิ๊กขวาที่ References แล้วเลือก Add Reference...
Go to Solution Explorer then right click at References and select Add Reference...
Wednesday, September 11, 2013
[C#] วิธีการควบคุมเมาส์เคอร์เซอร์
[C#] How to Control Mouse Cursor
ขั้นแรก ใส่ประโยคสำหรับใช้ไลบรารี่ตามด้านล่าง
First, insert three using statement as below
ข้างล่างนี้เป็นคลาสสำหรับควบคุมเม้าส์เคอร์เซอร์
This is a class to control mouse cursor
First, insert three using statement as below
- using System.Drawing;
- using System.Windows.Forms;
- using System.Runtime.InteropServices;
ข้างล่างนี้เป็นคลาสสำหรับควบคุมเม้าส์เคอร์เซอร์
This is a class to control mouse cursor
- class MouseCursor
- {
- [DllImport("user32.dll")]
- private static extern bool SetCursorPos(int x, int y);
- public static void MoveCursor(int x, int y)
- {
- SetCursorPos(x, y);
- }
- [DllImport("user32.dll")]
- private static extern void mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
- public enum MouseEventType : int
- {
- LeftDown = 0x02,
- LeftUp = 0x04,
- RightDown = 0x08,
- RightUp = 0x10
- }
- public static void MouseDown()
- {
- mouse_event((int)MouseEventType.LeftDown, Cursor.Position.X, Cursor.Position.Y, 0, 0);
- }
- public static void MouseUp()
- {
- mouse_event((int)MouseEventType.LeftUp, Cursor.Position.X, Cursor.Position.Y, 0, 0);
- }
- }
Tuesday, June 18, 2013
[AS3] วิธีแก้ข้อผิดพลาด:ใบรับรองหมดอายุหลังจากเพิ่งสร้างสำหรับ AIR Player
[AS3] How to Fix Error: Certificate Expired after Creation for AIR Player
ข้อผิดพลาดแสดงดังนี้
The error is shown as
เพื่อแก้ข้อผิดพลาด ทำตามขั้นตอนข้างล่าง
To fix it, follow these steps
[AS3] วิธีการบันทึกภาพ โดยไม่แสดงไฟล์ไดอะล็อก
[AS3] How to Save an Image without File Dialog
ถ้าใช้ Adobe Flash Player ไม่สามารถทำได้
If Adobe Flash Player is used, it is impossible.
อย่างไรก็ตาม มันสามารถที่จะทำได้สำหรับ Adobe Air Player
However, it is possible for Adobe Air Player
สมมติว่า imgByteData เป็นตัวแปรประเภท ByteArray ของภาพ PNG ที่จะบันทึก
Assume that imgByteData is ByteArray of PNG image which will be saved
If Adobe Flash Player is used, it is impossible.
อย่างไรก็ตาม มันสามารถที่จะทำได้สำหรับ Adobe Air Player
However, it is possible for Adobe Air Player
สมมติว่า imgByteData เป็นตัวแปรประเภท ByteArray ของภาพ PNG ที่จะบันทึก
Assume that imgByteData is ByteArray of PNG image which will be saved
- import flash.filesystem.*;
- ...
- var fs:FileStream=new FileStream();
- fs.open(new File("C:/img.png"), FileMode.WRITE);
- fs.writeBytes(imgByteData);
- fs.close();
[AS3] วิธีการบันทึกสกรีนเป็นภาพ
[AS3] How to Save Screen to an Image
ขั้นแรกอ่านข้อมูลบิทแมพจากสกรีน
First, get bitmap data from screen
First, get bitmap data from screen
- import flash.display.*;
- import flash.utils.ByteArray;
- ...
- var bitmapData:BitmapData = new BitmapData(this.width, this.height);
- bitmapData.draw(this);
ถัดมาทำการเข้ารหัสข้อมูลบิทแมพด้วยตัวเข้ารหัสภาพ
Next, encode bitmap data with image encoderMonday, June 17, 2013
[C#] ความแตกต่างระหว่างเมธอดที่ใช้ new กับ override
[C#] What Different between new and override Method
override - เมธอดของคลาสแม่ถูกเขียนทับในคลาสลูก
override - a method of a base class is overridden in a derived class
new - เมธอดของคลาสแม่ถูกซ่อนเอาไว้จากคลาสลูก โดยการประกาศเมธอดที่เหมือนกับคลาสแม่ในคลาสลูก
new - a method of a base class is hidden in a derived class by defining the same method of a base class in a derived class
ถ้าไม่ได้กำหนดคีย์เวิร์ดว่าเป็น override หรือ new ค่าตั้งต้นจะเป็น new
If you do not specify either override or new keyword, the default keyword is new
override - a method of a base class is overridden in a derived class
new - เมธอดของคลาสแม่ถูกซ่อนเอาไว้จากคลาสลูก โดยการประกาศเมธอดที่เหมือนกับคลาสแม่ในคลาสลูก
new - a method of a base class is hidden in a derived class by defining the same method of a base class in a derived class
ถ้าไม่ได้กำหนดคีย์เวิร์ดว่าเป็น override หรือ new ค่าตั้งต้นจะเป็น new
If you do not specify either override or new keyword, the default keyword is new
Wednesday, June 12, 2013
[Batch Script] FOR Syntax
syntax-FOR-Files
FOR %%parameter IN (set) DO command
syntax-FOR-Folders
FOR /D %%parameter IN (folder_set) DO command
syntax-FOR-List of numbers
FOR /L %%parameter IN (start,step,end) DO command
FOR %%parameter IN (set) DO command
syntax-FOR-Folders
FOR /D %%parameter IN (folder_set) DO command
syntax-FOR-List of numbers
FOR /L %%parameter IN (start,step,end) DO command
[Batch Script] วิธีเปลี่ยนค่าตัวแปรในลูป FOR
[Batch Script] How to Change Variable in FOR Loop
เนื่องจากลูป FOR ถูก interpret ตัวแปรในลูป FOR จึงไม่สามารถเปลี่ยนค่าและใช้ค่าที่ถูกเปลี่ยนในลูปเดียวกันได้
Due to FOR loop is interpreted, we cannot change a variable within a FOR loop and use that changed variable in the same loop
เราจึงต้องใช้ Delayed variable expansion ดังนั้นใส่คำสั่งนี้ก่อนลูป FOR
Delayed variable expansion is needed so add this command before FOR loop
แล้วใส่คำสั่งนี้ใต้ลูป FOR
Then add this command below FOR loop
Due to FOR loop is interpreted, we cannot change a variable within a FOR loop and use that changed variable in the same loop
เราจึงต้องใช้ Delayed variable expansion ดังนั้นใส่คำสั่งนี้ก่อนลูป FOR
Delayed variable expansion is needed so add this command before FOR loop
setlocal enabledelayedexpansion
แล้วใส่คำสั่งนี้ใต้ลูป FOR
Then add this command below FOR loop
endlocal
[Batch Script] เปลี่ยนชื่อไฟล์ทั้งหมดในแฟ้ม
[Batch Script] Rename All Files in Folder
- @echo off
- set OpList=%TEMP%\%RANDOM%.bat
- copy nul "%OpList%"
- set /a num=1
- setlocal enabledelayedexpansion
- for %%F in (%1\*) do (
- echo ren "%%F" "%2!num!.jpg" >> "%OpList%"
- set /a num=num+1
- )
- endlocal
- call "%OpList%"
- del "%OpList%"
- pause
Tuesday, June 11, 2013
[AS3] วิธีการอ่านไฟล์ XML
[AS3] How to Read XML File
ขั้นแรก สร้างไฟล์ข้อความชื่อ test.xml แล้วใส่ข้อความตามด้านล่าง
First, create XML file named test.xml and add text as below
First, create XML file named test.xml and add text as below
- <document>
- <head>Header</head>
- <body>
- <content>
- <no>1</no>
- <text>Content 1</text>
- </content>
- <content>
- <no>2</no>
- <text>Content 2</text>
- </content>
- </body>
- <foot>Footer</foot>
- </document>
Saturday, June 8, 2013
[OpenCV] วิธีการบันทึกไฟล์วิดีโอ
[OpenCV] How to Write/Save Video File
ขั้นแรก นิยามตัวแปรที่ใช้เขียนไฟล์วิดีโอตามด้านล่างนี้
First, define the video writer as follow
โดยที่
filepath เป็นที่อยู่ของวิดีโอที่ต้องการจะบันทึก ในที่นี้ใช้นามสกุล avi
fourcc เป็น codec ของวิดีโอที่จะบันทึก ในที่นี้ใช้ CV_FOURCC('M','J','P','G')
where
filepath is the path of output video file, in this case, file extension is avi
fourcc is the codec of video, in this case, CV_FOURCC('M','J','P','G') is used
ขั้นที่สอง เขียนเฟรมแต่ละเฟรมไปยังวิดีโอที่บันทึก
Second, write frame to output video as follow
ขั้นสุดท้าย ปลดปล่อยหน่วยความจำสำหรับตัวแปรที่ใช้เขียนไฟล์วิดีโอ
Last, release the video writer
First, define the video writer as follow
CvVideoWriter* writer = cvCreateVideoWriter(filepath,fourcc, fps, frame_size, iscolor);
โดยที่
filepath เป็นที่อยู่ของวิดีโอที่ต้องการจะบันทึก ในที่นี้ใช้นามสกุล avi
fourcc เป็น codec ของวิดีโอที่จะบันทึก ในที่นี้ใช้ CV_FOURCC('M','J','P','G')
where
filepath is the path of output video file, in this case, file extension is avi
fourcc is the codec of video, in this case, CV_FOURCC('M','J','P','G') is used
ขั้นที่สอง เขียนเฟรมแต่ละเฟรมไปยังวิดีโอที่บันทึก
Second, write frame to output video as follow
cvWriteFrame(writer, frame);
ขั้นสุดท้าย ปลดปล่อยหน่วยความจำสำหรับตัวแปรที่ใช้เขียนไฟล์วิดีโอ
Last, release the video writer
cvReleaseVideoWriter(&writer);
Friday, June 7, 2013
[OpenCV] วิธีการตรวจจับใบหน้า โดยใช้ Haar Cascade Classifier
[OpenCV] How to Detect Face using Haar Cascade Classifier
สมมติว่า img เป็นภาพสีสำหรับตรวจจับใบหน้า
Assume that img is color image for face detection
Assume that img is color image for face detection
- const char* cascade_name = "haarcascade_frontalface_alt.xml";
- static CvHaarClassifierCascade* cascade = (CvHaarClassifierCascade*)cvLoad( cascade_name );
- static CvMemStorage* storage = cvCreateMemStorage(0);
- CvSeq* detectFace(IplImage* img){
- static IplImage* gray=0;
- if(gray && (gray->width!=img->width || gray->height!= img->height)){
- cvReleaseImage(&gray);
- gray=0;
- }
- if(!gray)
- gray=cvCreateImage(cvGetSize(img),8,1);
- cvCvtColor(img,gray,CV_BGR2GRAY);
- cvClearMemStorage( storage );
- CvSeq* faces = cvHaarDetectObjects( gray, cascade, storage, 1.1, 3, CV_HAAR_DO_CANNY_PRUNING, cvSize(100, 100) );
- return faces;
- }
[OpenCV] วิธีเล่นวิดีโอจากไฟล์
[OpenCV] How to Play Video From File
- CvCapture* capture=cvCreateFileCapture("E:/Wildlife.wmv");
- IplImage* img;
- char c;
- double frame_width=cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_WIDTH );
- double frame_height=cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_HEIGHT );
- double fps=cvGetCaptureProperty(capture,CV_CAP_PROP_FPS );
- printf("%f %f %f",frame_width, frame_height,fps);
- cvNamedWindow("test",1);
- img=cvQueryFrame(capture);
- while(img){
- cvShowImage("test",img);
- c=cvWaitKey(30);
- if(c==27)
- break;
- img=cvQueryFrame(capture);
- }
- cvReleaseCapture(&capture);
[OpenCV] วิธีการดึงภาพจากกล้อง
[OpenCV] How to Capture Image From Camera
- CvCapture* capture=cvCreateCameraCapture(0);
- IplImage* img;
- char c;
- cvNamedWindow("test",1);
- while(true){
- img=cvQueryFrame(capture);
- cvShowImage("test",img);
- c=cvWaitKey(30);
- if(c==27)
- break;
- }
- cvReleaseCapture(&capture);
Tuesday, June 4, 2013
[AS3] วิธีการเล่นเสียง
[AS3] How to Play Sound
ใช้โค้ดตามด้านล่าง
Use the code below
หมายเหตุ: อย่าลืม import ตามด้านล่าง
Notice: you must import as below
Use the code below
- var snd:Sound = new Sound();
- snd.load(new URLRequest('sound path'));
- snd.play();
หมายเหตุ: อย่าลืม import ตามด้านล่าง
Notice: you must import as below
import flash.media.Sound;
import flash.net.URLRequest;
[AS3] วิธีการโหลดภาพเข้า Movie Clip
[AS3] How to Load Image into Movie Clip
ในคอนสตรัคเตอร์ของคลาส movie clip ให้ใส่โค้ดตามด้านล่าง
In the constructor of movie clip class, add the code as below
รูปภาพจะถูกโหลดจาก image path และถูกใส่เป็น child ใน movie clip นี้
The image will be loaded from image path and added to be child of this movie clip
หมายเหตุ: อย่าลืม import flash.net.URLRequest;
Notice: you must import flash.net.URLRequest;
In the constructor of movie clip class, add the code as below
- var loader:Loader = new Loader();
- loader.load(new URLRequest('image path'));
- addChild(loader);
รูปภาพจะถูกโหลดจาก image path และถูกใส่เป็น child ใน movie clip นี้
The image will be loaded from image path and added to be child of this movie clip
หมายเหตุ: อย่าลืม import flash.net.URLRequest;
Notice: you must import flash.net.URLRequest;
Monday, June 3, 2013
[AS3] วิธีการอ่านแถวของข้อความจากไฟล์ข้อความเข้าอาเรย์
[AS3] How to Read Line from Text File to Array
ขั้นแรก สร้างไฟล์ข้อความชื่อ line2array.txt แล้วใส่ข้อความตามด้านล่าง
First, create text file named line2array.txt with add text below
First, create text file named line2array.txt with add text below
google plus
internet explorer
html5
[AS3] วิธีโหลดตัวแปรจากไฟล์ข้อความ
[AS3] How to Load Variables from Text File
ขั้นแรก สร้างไฟล์ข้อความชื่อ variables.txt แล้วใส่ข้อความตามด้านล่าง
First, create text file named variables.txt with add text below
รูปแบบของข้อความจะเป็น ชื่อตัวแปร=ค่าของตัวแปร และคั่นด้วยเครื่องหมาย &
The format will be variable_name=variable_value and separated by &
First, create text file named variables.txt with add text below
myTitle=Test&myBody=This is test&myURL=www.google.com
รูปแบบของข้อความจะเป็น ชื่อตัวแปร=ค่าของตัวแปร และคั่นด้วยเครื่องหมาย &
The format will be variable_name=variable_value and separated by &
Sunday, June 2, 2013
[System] วิธีการจัดการพาร์ทิชั่นบน Windows 7
[System] How to Manage Partition on Windows 7
ดาวน์โหลด Partition Assistant จาก http://www.disk-partition.com/download-home.html
Download Partition Assistant from http://www.disk-partition.com/download-home.html
ในกรณีนี้ ผมเลือก AOMEI Partition Assistant Standard 5.2 (PA Standard)
In this case, I select AOMEI Partition Assistant Standard 5.2 (PA Standard)
Download Partition Assistant from http://www.disk-partition.com/download-home.html
In this case, I select AOMEI Partition Assistant Standard 5.2 (PA Standard)
Wednesday, April 24, 2013
[System] วิธีการปรับขนาดพาร์ทิชั่นของไฟล์ระบบบน Ubuntu
[System] How to Resize File System Partition on Ubuntu
ใส่แผ่นซีดี Ubuntu
Insert Ubuntu CD
หลังจากบูทจากแผ่น เลือก Try Ubuntu
After booting from CD, select Try Ubuntu
เปิดโปรแกรม Gparted (โปรแกรมนี้สามารถติดตั้งผ่านทาง Ubuntu Software Center)
Open Gparted program (This can be installed by Ubuntu Software Center)
Insert Ubuntu CD
หลังจากบูทจากแผ่น เลือก Try Ubuntu
After booting from CD, select Try Ubuntu
เปิดโปรแกรม Gparted (โปรแกรมนี้สามารถติดตั้งผ่านทาง Ubuntu Software Center)
Open Gparted program (This can be installed by Ubuntu Software Center)
[System] วิธีการแก้ข้อผิดพลาด "file not found" ด้วย grub rescue
[System] How to Fix Error: "file not found" with grub rescue
ข้อผิดพลาดนี้จะแสดงดังภาพด้านล่างหลังจากเปิดเครื่อง
This error is shown as image below after booting
Tuesday, April 23, 2013
[VirtualBox] วิธีการเปลี่ยนขนาดของฮาร์ดดิสก์
[VirtualBox] How to Resize the Size of Harddisk
ใช้คำสั่งดังนี้
using this command
โดยปกติ VBoxManage.exe จะอยู่ที่ C:\Program Files\Oracle\VirtualBox\
VBoxManage.exe is normally in C:\Program Files\Oracle\VirtualBox\
แทนที่ YOUR_HARD_DISK ด้วยชื่อฮาร์ดดิสก์
YOUR_HARD_DISK must be replace with your image name
แทนที่ SIZE_IN_MB ด้วยขนาดที่ต้องการ
SIZE_IN_MB must be replace with your desired size
using this command
VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB
โดยปกติ VBoxManage.exe จะอยู่ที่ C:\Program Files\Oracle\VirtualBox\
VBoxManage.exe is normally in C:\Program Files\Oracle\VirtualBox\
แทนที่ YOUR_HARD_DISK ด้วยชื่อฮาร์ดดิสก์
YOUR_HARD_DISK must be replace with your image name
แทนที่ SIZE_IN_MB ด้วยขนาดที่ต้องการ
SIZE_IN_MB must be replace with your desired size
Monday, April 15, 2013
Sunday, April 14, 2013
[C#] การติดตั้งตัวคอมไพล์ C# บน Ubuntu
[C#] C# Compiler Installation on Ubuntu
สำหรับการติดตั้ง ให้ใช้คำสั่งต่อไปนี้ใน Terminal
To install, use this command on Terminal
or
To install, use this command on Terminal
sudo apt-get install mono-gmcsหรือ
or
sudo apt-get install mono-dmcs
Friday, April 12, 2013
[OpenCV] วิธีการใช้ OpenCV บน Ubutu
[OpenCV] How to Use OpenCV on Ubuntu
สร้างไฟล์ใหม่ชื่อ test.cpp แล้วใส่โค้ดที่ใช้ OpenCV ตามด้านล่าง
Create a program using OpenCV by creating new text file and inserting the code as below then saving as test.cpp
Create a program using OpenCV by creating new text file and inserting the code as below then saving as test.cpp
- #include<stdio.h>
- #include<opencv/cv.h>
- #include<opencv/highgui.h>
- int main(){
- IplImage* img=cvLoadImage("test.jpg",1);
- cvNamedWindow("Test",1);
- cvShowImage("Test",img);
- cvWaitKey();
- return 0;
- }
Monday, April 1, 2013
[OpenCV] การติดตั้ง OpenCV บน Ubuntu
[OpenCV] OpenCV Installation on Ubuntu
สมมติว่า แฟ้ม OpenCV ถูกสร้างอยู่ในแฟ้ม Home เรียบร้อยแล้ว
Assume that OpenCV folder is created in Home folder
ขั้นตอนแรก ดาวน์โหลด source code ของ OpenCV มาไว้ในเครื่อง โดยมีอยู่สองทางเลือก
First, get OpenCV source code. There are two options.
- ดาวน์โหลดเวอร์ชั่นที่เสถียรล่าสุดของ OpenCV
- Get the Latest Stable OpenCV Version
Wednesday, March 13, 2013
[OpenCV] การติดตั้งแพ็คเกจที่จำเป็นสำหรับการติดตั้ง OpenCV บน Ubuntu
[OpenCV] Required Packages Installation for OpenCV on Ubuntu
ก่อนจะทำการติดตั้ง OpenCV บน Ubuntu จำเป็นจะต้องลงแพ็คเกจที่จำเป็นเสียก่อน (ตาม เอกสาร OpenCV)
There are some required packages for OpenCV installation on Ubuntu. (see OpenCV document)
โพสต์นี้จะอธิบายการติดตั้งแต่ละแพ็คเกจ แต่ก่อนอื่น คุณจำเป็นจะต้องรู้เกี่ยวกับ Terminal และ Ubuntu Software Center เสียก่อน (อ่าน วิธีการเรียกใช้ Terminal บน Ubuntu และ วิธีการใช้ Ubuntu Software Center)
The installation of each package is described in this post. Before starting, you need to know about Terminal and Ubuntu Software Center (see How to run Terminal on Ubuntu and How to use Ubuntu Software Center).
There are some required packages for OpenCV installation on Ubuntu. (see OpenCV document)
โพสต์นี้จะอธิบายการติดตั้งแต่ละแพ็คเกจ แต่ก่อนอื่น คุณจำเป็นจะต้องรู้เกี่ยวกับ Terminal และ Ubuntu Software Center เสียก่อน (อ่าน วิธีการเรียกใช้ Terminal บน Ubuntu และ วิธีการใช้ Ubuntu Software Center)
The installation of each package is described in this post. Before starting, you need to know about Terminal and Ubuntu Software Center (see How to run Terminal on Ubuntu and How to use Ubuntu Software Center).
[System] วิธีการเรียกใช้ Terminal บน Ubuntu
[System] How to Run Terminal on Ubuntu
เมื่อคุณล็อคอินเข้าสู่ Ubuntu หน้าจอของคุณจะแสดงตามภาพด้านล่าง
When you log into Ubuntu, your screen is shown as below
When you log into Ubuntu, your screen is shown as below
Tuesday, March 12, 2013
[VirtualBox] วิธีการติดตั้ง Guess Addition สำหรับ Ubuntu
[VirtualBox] How to Install Guess Addition for Ubuntu
ผมได้ลองลง guess addition ด้วยตัวเองตามวิธีข้างล่าง
I install guess addition by myself as the follow
- ไปที่ Devices บนเมนูบาร์ และเลือก Install Guest Additions…
- ไปที่ไดร์ฟซีดี ดับเบิ้ลคลิ้กที่ VBoxLinuxAdditions.run และกดปุ่ม Run In Terminal
หลังจากนั้น ผมติดตั้ง Cheese Webcam Booster และสั่งรันผ่าน Terminal ผมได้ข้อความเตือนที่มีคำว่า gl ซึ่งเกี่ยวข้องกับ X-windows ใน Ubuntu ผมลองค้นหาวิธีแก้และได้วิธีการตามขั้นตอนด้านล่าง
I install guess addition by myself as the follow
- Click on Install Guest Additions… from the Devices menu, then choose to browse the content of the CD
- Go to CD drive, double click on VBoxLinuxAdditions.run and click Run In Terminal
After that I installed Cheese Webcam Booster, ran it in terminal, and got warning messages with word gl. These warning messages are about X-windows in Ubuntu. I searched for the solution and found the following steps
Monday, March 11, 2013
[VirtualBox] การติดตั้ง Ubuntu
[VirtualBox] Ubuntu Installation
เริ่มจากสร้างเครื่องเสมือนเครื่องใหม่บน Virtual Box (ตาม วิธีการสร้างเครื่องเสมือนใหม่สำหรับ Ubuntu บน Virtual Box)
First, create new virtual machine on Virtual Box (follow How to Create New Virtual Machine for Ubuntu on Virtual Box)
หลังจากนั้น ดาวน์โหลด Ubuntu จาก http://www.ubuntu.com/download/desktop (แนะนำให้เลือก Ubuntu 12.04 LTS) ไฟล์ที่ได้จะเป็นไฟล์ ISO ซึ่งต้องทำการเขียนลงแผ่นซีดีหรือเปิดไฟล์ด้วยไดร์ฟเสมือน โดยใช้โปรแกรม เช่น DAEMON Tools Lite
Second, download Ubuntu from http://www.ubuntu.com/download/desktop (I recommend to choose Ubuntu 12.04 LTS). This is an ISO image which should be either written to CD or mounted to virtual drive using software such as DAEMON Tools Lite.
ใส่แผ่นซีดีหรือเปิดไฟล์ ISO ด้วยไดร์ฟเสมือน แล้วเปิด Virtual Box
Insert CD or mount ISO image to virtual drive then start Virtual Box
First, create new virtual machine on Virtual Box (follow How to Create New Virtual Machine for Ubuntu on Virtual Box)
หลังจากนั้น ดาวน์โหลด Ubuntu จาก http://www.ubuntu.com/download/desktop (แนะนำให้เลือก Ubuntu 12.04 LTS) ไฟล์ที่ได้จะเป็นไฟล์ ISO ซึ่งต้องทำการเขียนลงแผ่นซีดีหรือเปิดไฟล์ด้วยไดร์ฟเสมือน โดยใช้โปรแกรม เช่น DAEMON Tools Lite
Second, download Ubuntu from http://www.ubuntu.com/download/desktop (I recommend to choose Ubuntu 12.04 LTS). This is an ISO image which should be either written to CD or mounted to virtual drive using software such as DAEMON Tools Lite.
ใส่แผ่นซีดีหรือเปิดไฟล์ ISO ด้วยไดร์ฟเสมือน แล้วเปิด Virtual Box
Insert CD or mount ISO image to virtual drive then start Virtual Box
[VirtualBox] วิธีการสร้างเครื่องเสมือนใหม่สำหรับ Ubuntu
[VirtualBox] How to Create New Virtual Machine for Ubuntu
เริ่มจากดาวน์โหลด Oracle VM Virtual Box จาก https://www.virtualbox.org/wiki/Downloads และทำการติดตั้งบนเครื่อง (ทั้ง VirtualBox 4.2.8 for Windows hosts และ VirtualBox 4.2.8 Oracle VM VirtualBox Extension Pack)
First, download Oracle VM Virtual Box from https://www.virtualbox.org/wiki/Downloads and install on your computer (both VirtualBox 4.2.8 for Windows hosts and VirtualBox 4.2.8 Oracle VM VirtualBox Extension Pack)
เปิด Oracle VM Virtual Box ขึ้นมา (สำหรับครั้งแรก แถบด้านซ้ายจะว่างเปล่า)
Next, start Oracle VM Virtual Box (For first time, the left panel will empty)
First, download Oracle VM Virtual Box from https://www.virtualbox.org/wiki/Downloads and install on your computer (both VirtualBox 4.2.8 for Windows hosts and VirtualBox 4.2.8 Oracle VM VirtualBox Extension Pack)
เปิด Oracle VM Virtual Box ขึ้นมา (สำหรับครั้งแรก แถบด้านซ้ายจะว่างเปล่า)
Next, start Oracle VM Virtual Box (For first time, the left panel will empty)
Subscribe to:
Posts (Atom)