Apr 7, 2012

Hướng dẫn cài đặt OpenGL.

Sau đây là hướng dẫn cài đặt OpenGL (Open Graphic Library) trên các phiên bản Visual Studio. Mặc dù OpenGL đã được cài đặt sẵn trên các driver đồ họa, tuy nhiên nếu không thiết lập và cài đặt thư viện Glut mới sử dụng các hàm này được.
0. Sự khác nhau về OpenGL và Glut:
  • OpenGL là thư viện đồ họa gồm các API về thuật toán vẽ hình, các phép biến đổi, phép chiếu của thực thể.
  • GLUT là thư viện quản lí cửa sổ, các thao tác nhập xuất như bàn phím, chuột, menu đơn. Cũng như các API liên quan tới việc giao tiếp của người dùng với OpenGL.
Và như vậy GLUT như 1 trung gian giữa end-user và thư viện OpenGL. Thông qua các sự kiện của người dùng, GLUT sẽ "catch" - tức bắt các sự kiện đó, phân tích rồi thực hiện theo cài đặt. Và OpenGL sẽ thực thi các lệnh vẽ, thông qua GLUT sẽ trả về kết quả trên màn hình.
1. Tải GLUT tại đây.
2. Giải nén. Trong đó có 3 file cần lưu tâm:
“glut32.dll” Chép vào thư mục C:\Windows\System32. (Nếu cẩn thận thì nên copy sang thư mục khác nữa là :C:\Windows\SysWOW64 )
“glut.h” Chép vào thư mục include của Visual C++.
  • Với phiên bản 2012: Chép vào: C:\Program Files\Microsoft Visual Studio 11.0\VC\include. Đối với bản 2012: thư mục gl không còn tồn tại nữa, thực tế các header file liên quan đến OpenGL đã được đưa đến nơi khác. Thư mục đó vẫn có tên là gl. Vì vậy đối với bản 2012. Khi lập trình ta cần include như sau:

    #include <glut.h>
    #include <gl/gl.h>
    #include <gl/glu.h>
    
  • Với phiên bản 2010: Chép vào: C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\gl.
  • Với phiên bản 2008: Chép vào: C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\gl.
  • Với phiên bản 2005: Chép vào: C:\Program Files\Microsoft Visual Studio.NET\Vc7\PlatformSDK\Include\gl
“glut32.lib” Chép vào thư mục library:
  • Với phiên bản 2012: C:\Program Files\Microsoft Visual Studio 11.0\VC\lib
  • Với phiên bản Visual Studio 2010: C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib
  • Với phiên bản Visual Studio 2008: C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib
  • Với phiên bản Visual Studio 2005: C:\Program Files\Microsoft Visual Studio.NET\Vc7\PlatformSDK\lib.
3. Thiết lập cho project Visual Studio.

  • Tạo một empty project Win32 console application.
  • Click chuột phải vào dự án ở Solution Explorer, chọn Properties. Phần Linker, mục Additional Dependence nhập các file sau:
    glut32.lib 
    glu32.lib 
    opengl32.lib
    
  • Phần VC++ Directories, chọn mục Include Directories click edit vào trỏ đến đường dẫn tương ứng cho thư mục include ở phần trên. Làm tương tự với Library Directories.
4. Thứ tự include vào file cpp theo thứ tự sau:

#include <GL/glut.h>
#include <GL/gl.h>
#include <GL/glu.h>

5.Lưu ý: Khi include các thư viện stdio.h, stdlib.h thì phải include các file này trước, sau đó mới include các header file của GLUT

Mar 28, 2012

Lấy bookmark của Chrome

Nếu lỡ tay cài lại win, hay làm gì đó mà quên export Bookmark của Chrome. Bạn có thể lấy lại tất cả dữ liệu bằng cách lấy file bookmark ở địa chỉ:

“[Old OS driver]:\User\[Username]\AppData\Local\Google\Chrome\User Data\Default”

Chép bookmark và bookmark.bak đè lên thư mục mới của nó

“[New OS driver]:\User\[Username]\AppData\Local\Google\Chrome\User Data\Default”

Mar 13, 2012

Chuyển ảnh màu sang ảnh xám

image

Tạo 1 project Win32 console và chép code sau:

#include <iostream> 
#include <opencv2\opencv.hpp>
#include <opencv2\highgui\highgui.hpp> 
using namespace std; 
using namespace cv; 
void main() 
{         
    // Load ảnh cần chuyển
    IplImage* img = cvLoadImage("pic1.jpg",1);
    // Tạo một biến mới để chuyển ảnh màu thành xem
    // cvGetSize(img) : lấy thông tin kích thước của img, IPL_DEPTH_8U là chuẩn màu của hình.
    IplImage* grayimg = cvCreateImage( cvGetSize(img), IPL_DEPTH_8U, 1);
    // Lấy thông tin chiều dài, rộng, số kênh màu, widthStep,
    int nl= img->height;
    int nc= img->width * img->nChannels;
    int step= img->widthStep;  
    int graystep = grayimg->widthStep;
    // img -> imageData: mảng chứa các mã màu của img
    uchar *data= (uchar *)img->imageData;
    uchar *graydata= (uchar *)grayimg->imageData;
 
    for (int i=0; i < nl; i++) {
       for (int j=0; j < nc; j += img->nChannels) {
        // Công thức chuyển anh RGB thành màu GRAY.
           graydata[(int)j/3]=  (unsigned char) (0.299*data[j + 0] + 0.587*data[j + 1] + 0.114*data[j+2] + 0.5);
        }
            data+= step;
            graydata+=graystep;
    }
    // Mở và hiển thị ảnh vừa chuyển
    cvNamedWindow("Xam",0);
    cvShowImage("Xam",grayimg);
    waitKey(0);
    // Giải phóng vùng nhớ
    cvDestroyWindow("Xam");
    cvReleaseImage(&img);
    cvReleaseImage(&grayimg);
}  

Mar 7, 2012

Hướng dẫn cài đặt OpenCV cho Visual Studio 2010, 2012 và 2013 bản x64.

Mình đã vật lộn mất gần một buổi để cài nó. Hi vọng có bạn nào dùng cái này sẽ đỡ phải nhọc. Không chỉ cài đặt được trên phiên bản 2.3.1, hướng dẫn dưới đây còn áp dụng được cả cho các phiên bản 2.0 về trước và các bản mới nhất. Đồng thời chạy tốt trên các bản Visual Studio 2008, 2010, 2012.

Registry.

 

Đây là một trong những khái niệm cơ bản và thường xuyên gặp khi các bạn đi sửa máy, đồng thời nó cũng khá quan trọng nếu sau này các bạn lập trình ứng dụng window, sử dụng các API.

Feb 27, 2012

Driver

 

Driver, một trong những khái niệm quan trọng trong máy tính, đồng thời là một phần không thể thiếu đối với những chàng "sửa máy dạo". Vậy driver là gì? Làm thế nào để có thể giải quyết tốt các vấn đề driver khi tiếp xúc và xử lý yêu cầu. Bài viết này sẽ giúp các bạn hiểu thêm được phần nào.

 

(Trong khuôn khổ bài viết, mình chỉ đề cập ở mức khái niệm và các tips giúp các bạn nhanh giải quyết, về chuyên sâu về viết driver, tiến trình cài đặt, hoạt động, mình xin không chuyên sâu).

Tự tạo giao diện cho trình duyệt Chrome theo phong cách riêng.

Bạn không muốn sử dụng theme cố định của Google Chrome, và cũng không thích dùng theme của người khác, cũng như muốn tự tạo ra theme cho riêng mình. Điều đó hoàn toàn có thể với tutorial sau.