Showing posts with label Lập trình C++. Show all posts
Showing posts with label Lập trình C++. Show all posts

Wednesday, December 7, 2016

Ứng dụng xử lý ảnh trong thực tế với thư viện OpenCV C/C++

Tác giả Nguyễn Văn Long
Số trang 103
Tải về Mega

Xử lý ảnh và thị giác máy tính là lĩnh vực mà ngày nay được phát triển và ứng dụng rất rộng rãi trong nhiều lĩnh vực khác nhau nhờ vào sự phát triển ngày càng mạnh mẽ của các hệ thống máy tính, các thuật toán và công trình nghiên cứu khác nhau của nhiều nhà khoa học trên thế giới.

Ở Việt Nam, các ứng dụng về xử lý ảnh đã bước đầu được triển khai trên một số lĩnh vực như lắp đặt hệ thống nhận dạng biển số xe ở các bãi đổ xe, hệ thống nhận dạng dấu vân tay chấm công ở các công sở,... môn học xử lý ảnh ở các trường đại học được xem là môn học bắt buộc ở một số ngành như công nghệ thông tin, điện tử viễn thông,... Tuy nhiên nhìn một cách khách quan thì số lượng các ứng dụng được triển khai trên thực tế là quá ít ỏi, lĩnh vực này sẽ còn phát triển mạnh mẽ trong tương lai nếu như được quan tâm một cách nghiêm túc.

Xuất phát từ thực tế rằng môn học xử lý ảnh ở các trường đại học là một môn học mang năng tính học thuật, khô khan, các vấn đề được mô tả dưới dạng toán học, sinh viên nắm bắt môn học một cách chung chung mà không đi vào bản chất vấn đề, ứng dụng thực tiễn của môn học, thêm vào đó số lượng tài liệu về chuyên ngành này bằng tiếng Việt là không nhiều, bằng quá trình nghiên cứu nghiêm túc, kinh nghiệm thực tế, tác giả đã cố gắng cho ra đời cuốn sách Ứng dụng xử lý ảnh trong thực tế với thư viện OpenCV.

Cuốn sách đề cập tới một số phần của lĩnh vực xử lý ảnh và thị giác máy tính, thông qua sự diễn giải trực quan, không xa những công thức toán học trừu tượng, phức tạp nhưng vẫn làm nổi bật lên được vấn đề, giúp người đọc có được cái nhìn tổng quát, hiểu được khái niệm và hơn nữa biết được những vấn đề đó ứng dụng vào thực tế như thế nào. Các chủ đề trong cuốn sách này đều đi kèm với một chương trình mô phỏng được vietes bằng ngôn ngữ C++ với sự giúp đỡ của thư viện OpenCV, một thư viện mã nguồn mở được đánh giá là mạnh mẽ về tốc độ xử lý đáp ứng được các ứng dụng trong thời gian thực.

Cuốn sách được chia thành bốn phần, phần đầu giới thiệu về thư viện OpenCV, phần thứ hai nói về một số vấn đề chọn lọc thường gặp trong xử lý ảnh như không gian màu, các bộ lọc, cách phát hiện đường thẳng, tròn trong ảnh, … Phần thứ ba nói về một số thủ thuật để lập trình với thư viện MFC và phần cuối cùng nói về một số ứng dụng thực tế như bài toán nhận dạng biển số xe …

Cuốn sách không chỉ là tài liệu tham khảo bổ ích trong quá trình học tập của các bạn sinh viên, quá trình làm luận văn, đồ án, … mà còn là công cụ tốt hỗ trợ cho việc triển khai các ứng dụng thương mại của các kĩ sư, doanh nghiệp và những người quan tâm tới lĩnh vực.

Cuối cùng dù đã dành nhiều tâm huyết để hoàn thành cuốn sách nhưng chắc chắn cuốn sách vẫn còn nhiều sai xót, tác giả mong nhận được sự góp ý của bạn đọc. Xin gửi lời chúc tốt đẹp và lồi cảm ơn sâu sắc tới đọc giả.

Wednesday, November 16, 2016

Giáo trình C - Nguyễn Hữu Tuấn

Tác giả Nguyễn Hữu Tuấn
Số trang 142
Tải về Mega

Tin học là một ngành khoa học mũi nhọn phát triển hết sức nhánh chóng trong vài chục năm lại đây và ngày càng mở rộng lĩnh vực nghiên cứu, ứng dụng trong mọi mặt của đời sống xã hội.

Ngôn ngữ lập trình là một loại công cụ giúp con người thể hiện các vấn đề của thực tế lên máy tính một cách hiệu quả. Với sự phát triển của tin học, các ngôn ngữ lập trình cũng dần tiến hóa để đáp ứng các thách thức mới của thực tế.

Khoảng cuối những năm 1960 đầu 1970 xuất hiện nhu cầu cần có các ngôn ngữ bậc cao để hỗ trợ cho những nhà tin học trong việc xây dựng các phần mềm hệ thống, hệ điều hành. Ngôn ngữ C ra đời từ đó, nó đã được phát triển tại phòng thí nghiệm Bell. Đến năm 1978, giáo trình “Ngôn ngữ lập trình C” do chính tác giả của ngôn ngữ là Dennish Ritchie và B.W.Kernighan viết, đã được xuất bản và phổ biến rộng rãi.

C là ngôn ngữ lập trình vạn năng. Ngoài việc C được dùng để viết hệ điều hành UNIX, người ta nhanh chóng nhận ra sức mạnh của C trong việc xử lý cho các vấn đề hiện đại của tin học. C không gắn với bất kỳ một hệ điều hành hay máy móc nào, và mặc dầu nó đã được gọi là “ngôn ngữ lập trình hệ thống” vì nó được dùng cho việc viết hệ điều hành, nó cũng tiện lợi cho cả việc viết các hương trình xử lý số, xử lý văn bản và cơ sở dữ liệu.

Và bây giờ chúng ta đi tìm hiểu thế giới của ngôn ngữ C từ những khái niệm ban đầu cơ bản nhất.

Lý thuyết và bài tập C

Tác giả Không rõ tác giả
Số trang 152
Tải về Mega

Nội dung
Khi bắt đầu làm quen với ngôn ngữ lập trình – Cụ thể là ngôn ngữ C – Sinh Viên thường gặp khó khăn trong việc chuyển vấn đề lý thuyết sang cài đặt cụ thể trên máy. Sách “Giáo Trình Bài Tập Kỹ Thuật Lập Trình” nhằm cung cấp cho các Học Sinh - Sinh Viên Trường CĐ Công Nghệ Thông Tin Tp. Hồ Chí Minh hệ thống các bài tập, những kỹ năng thực hành cơ bản và nâng cao về ngôn ngữ lập trình C. Cuốn sách này được xem như tài liệu hướng dẫn từng bước cho Học Sinh - Sinh Viên của Trường trong việc học và áp dụng kiến thức lý thuyết trên lớp một cách thành thạo và sâu rộng. Giáo trình được chia thành 10 chương theo từng nội dung kiến thức, kèm theo Các đề thi mẫu và 1 phụ lục hướng dẫn viết chương trình, chuẩn đoán lỗi và sửa lỗi. Mỗi chương gồm 2 phần:
  • Phần lý thuyết: được tóm tắt ngắn gọn với đầy đủ ví dụ minh hoạ kèm theo.
  • Phần bài tập: với nhiều bài tập được chia làm hai mức độ cơ bản và luyện tập nâng cao, bài tập có đánh dấu * là bài tập khó dành cho sinh viên luyện tập thêm.
  • Phần kết luận: Tóm tắt nội dung và các thao tác mà sinh viên cần nắm haynhững lưu ý của chương đó.
Trong quá trình biên soạn, chúng tôi đã cố gắng trích lọc những kiến thức rất cơ bản, những lỗi hay gặp đối với người mới lập trình. Bên cạnh đó chúng tôi cũng bổ sung thêm một số bài tập nâng cao để rèn luyện thêm kỹ năng lập trình.

Tuy nhiên, chủ đích chính của giáo trình này là phục vụ cho một môn học nên chắc chắn không thể tránh khỏi những thiếu sót, vì thế, rất mong nhận được những góp ý quý báu của các thầy cô, các đồng nghiệp và các bạn Học Sinh – Sinh Viên để giáo trình này ngày càng hoàn thiện hơn.
Chân thành cảm ơn.

Bài giảng lập trình C trên Windows

Tác giả Trần Minh Thái
Số trang 69
Tải về Mega

Nội dung:
Bài 1: GIỚI THIỆU CHUNG
   1. Mở đầu
   2. Các thư viện lập trình của Windows
   3. Các khái niệm cơ bản
   4. Lập trình sự kiện (Even driven programming)
   5. Các thành phần giao diện đồ họa (GUI)
   6. Cấu trúc chương trình C for Win
   7. Qui trình hoạt động của chương trình ứng dụng
   8. Một số quy ước đặt tên
   9. Ví dụ
   10. Tài nguyên của ứng dụng (Resources)
   11. Một số kiểu dữ liệu mới
   12. Phân tích, tìm hiểu source code của project
Bài 2: PAINT VÀ REPAINT
   1. Giới thiệu
   2. Tổng quan về GDI (Graphics Device Interface)
   3. Một số hàm đồ họa cơ sở
   4. Kết luận
Bài 3: CÁC THIẾT BỊ NHẬP LIỆU
   1. Bàn phím
   2. Thiết bị chuột
   3. Timer
Bài 4: HỘP THOẠI VÀ ĐIỀU KHIỂN
   1. Hộp thoại
   2. Menu
Bài 5: XỬ LÝ VĂN BẢN
   1. Hiển thị văn bản
   2. Định dạng văn bản
   3. Sử dụng font
Tài liệu tham khảo

Ngôn ngữ lập trình C căn bản - Hanoi APTech

Tác giả Hanoi Aptech Computer
Education Center
Số trang 135
Tải về Mega

Nội dung 
Bài 1: Ngôn ngữ lập trình & phương pháp lập trình
Bài 2: Làm quen lập trình C qua các ví dụ đơn giản
Bài 3: Các thành phần trong ngôn ngữ C
Bài 4: Nhập/xuất dữ liệu
Bài 5: Cấu trúc rẽ nhánh có điều kiện
Bài 6: Cấu trúc vòng lặp
Bài 7: Hàm
Bài 8: Mảng và chuỗi
Bài 9: Con trỏ
Bài 10: Kiểu dữ liệu tự tạo
Bài 11: Tập tin
Bài 12: Đệ quy
Bài 13: Trình soạn thảo của Borland C
Bài 14: Các hệ đếm
Bài 15: Biểu thức và phép toán
Bài 16: Một số hàm chuẩn thường dùng

Kỹ thuật lập trình C cơ sở và nâng cao - Gs. Phạm Văn Ất

Tác giả GS. Phạm Văn Ất
Số trang 546
Tải về Mega

Cuốn sách này là sự nối tiếp cuối “Ngôn ngữ lập trình C - Lý thuyết và thực hành với 80 chương trình mẫu trong KHKT và Quản lý kinh tế” của tác giả.
Nội dung cuốn sách gồm hai phần: Cơ sở và nâng cao.
Phần cơ sở (10 chương đầu) dựa trên nền của cuốn trước nhưng thêm vào khá nhiều tư liệu mới cho đầy đủ nhưng trong các chương mục: Hàm đệ quy, con trỏ hàm, cấu trúc, danh sách móc nối, kỹ thuật đồ họa và tổ chức tệp.
Phần nâng cao (các chương còn lại và một vài vấn đề khó ở cuối chương 6, 7, 8, 9) là các tư liệu hoàn toàn mới chưa có ở cuốn sách trước. Bạn đọc có thể tìm thấy ở đây nhiều vấn đề bổ ích và lý thú như: Kỹ thuật tạo ảnh chuyển động, in ảnh từ màn hình đồ họa, chơi nhạc trên máy, kiến trúc bộ nhớ 8086 và cách truy cập trực tiếp vào bộ nhớ, sử dụng các chức năng sâu của DOS và BIOS, điều khiển chuột, cách lập hàm xử lý ngắt và chương trình thường trú, thay đổi các chức năng các phím, lập trình theo thời gian thực và lập trình hướng sự kiện, thiết kế trò chơi đuổi bắt, tổ chức chương trình trên nhiều tệp, tạo chương trình COM, kết hợp giữa C và Assembler, xây dựng menu một mức, menu 2 mức trên môi trường văn bản và đồ họa, cách lập các hàm mà số đối (tham số hình thức) không cố định.
Trong sách đưa vào hơn 200 hàm chuẩn chọn lọc của Turbo C đủ để bạn đọc tra cứu và sử dụng.
Các vấn đề lý thuyết được minh họa trên nhiều chương trình chọn lọc đã thử nghiệm trên máy.
Sách gồm 18 chương và 13 phụ lục:
Chương 1 ngoài việc giới thiệu các khái niệm cơ bản còn đưa ra một số chương trình C đơn giản và cách thực hiện chúng trên máy để giúp người đọc mau chóng tiếp cận với máy.
Chương 2 trình bày các kiểu dữ liệu, cách biểu diễn các giá trị dữ liệu và cách tổ chức (lưu trữ) dữ liệu trong biến và mảng.
Chương 3 trình bày về các cách xử lý dữ liệu đơn giản nhờ các phép toán, biểu thức và câu lệnh gán.
Chương 4 trình bày các hàm vào ra dữ liệu trên bàn phím, màn hình và máy in.
Chương 5 trình bày về một lớp toán tử rất quan trọng dùng để thể hiện thuật toán, đó là toán tử nhẩy goto, toán tử rẽ nhánh if, toán tử lựa chọn switch và các toán tử tạo lập chu trình (vòng lặp) for, while, do-while.
Chương 6 trình bày cách tổ chức chương trình thành các hàm, các quy tắc xây dựng và sử dụng hàm. Các vấn đề hay và khó ở đây là con trỏ, con trỏ hàm và kỹ thuật đệ quy.
Chương 7 trình bày về một kiểu dữ liệu quan trọng là cấu trúc. Cũng sẽ nói về các hàm trên cấu trúc, cấu trúc tự trỏ và danh sách liên kết.
Chương 8 trình bày về việc quản lý màn hình văn bản và cách xây dựng cửa sổ. Một ví dụ hay ở đây là chương trình mô phỏng quy trình chuyển tháp trên màn hình mầu.
Chương 9 trình bày các hàm đồ họa để vẽ các hình cơ bản và kỹ thuật tạo ảnh chuyển động. Ở đây có nhiều ví dụ hay như chương trình vẽ tàu vũ trụ chuyển động, chương trình mô phỏng đồng hồ chạy theo thời gian thực,...
Chương 10 trình bày các thao tác trên tệp như: tạo một tệp mới, ghi dữ liệu từ bộ nhớ lên tệp, đọc dữ liệu từ tệp vào bộ nhớ,...
Chương 11 trình bày về cách lưu trữ dữ liệu và tổ chức bộ nhớ của chương trình.
Chương 12 trình bày các chỉ thị tiền xử lý giúp việc biên soạn, biên dịch chương trình hiệu quả hơn.
Chương 13 trình bày cách sử dụng ngắt mềm của DOS và BIOS để quản lý trực jtieeps các thiết bị như ổ đĩa, màn hình, bàn phím và chuột.
Chương 14 trình bày về kiến trúc bộ nhớ của 8086, địa chỉ phân đoạn, địa chỉ thực và cách truy nhập trực tiếp vào bộ nhớ. Ở đây cũng có một số ví dụ hay như các hàm đưa thông tin trực tiếp vào bộ nhớ màn hình.
Chương 15 trình bày quy tắc viết các hàm xử lý ngắt cứng và các lập trình thường trú. Đây là một trong những vấn đề khó nhưng được diễn đạt một cách giản dị, dễ hiểu và được minh họa bằng nhiều ví dụ thú vi, như các chương trình thường trú thông báo thời gian, các chương trình thường trú quản lý bàn phím (thay đổi chức năng một số phím, làm vô hiệu hóa một số hoặc toàn bộ bàn phím, tạo các autotext để làm tăng tốc độ soạn thảo văn bản).
Chương 16 sẽ minh họa quy tắc tạo âm thanh, âm nhạc trên nhiều ví dụ, trong đó có chương trình chơi bản nhạc Lambada quen thuộc.
Chương 17 dưa ra các khái niệm mới mẻ về lập trình theo thời gian thực, lập trình hướng sự kiện và kỹ thuật trò chơi. Một ví dụ lý thú ở đây là trò chơi bắn một tàu lạ lượn trên bầu trời. Qua chương này, người đọc có thể hiểu được cách sử dụng chuột, cachs thiết kế và xây dựng các trò chơi đuổi bắt trên màn hình đồ họa.
Chương 18 trình bày cách sử dụng các hàm viết bằng Assembler trong C.
Phụ lục 1 trình bày quy tắc xuống dòng và sử dụng các kí tự trống khi viết chương trình.
Phụ lục 2 có thể dùng để tra cứu các hàm chuẩn thường dùng của C.
Phụ lục 3 trình bày các bảng mã ASCII và mã quét.
Phụ lục 4 hướng dẫn cách cài đặt Turbo C vào đĩa cứng.
Phụ lục 5 giới thiệu chung về môi trường kết hợp của C
Phụ lục 6 trình bày về cách sử dụng hệ soạn thảo C dùng để biên soạn chương trình gốc.
Phụ lục 7 trình bày cách dùng menu Project để dịch chương trình viết trên nhiều tệp.
Phụ lục 8 hướng dẫn cách dùng trình biên dịch TCC để dịch (từ môi trường DOS) các chương trình lớn viết trên nhiều tệp. Phương pháp này cho phép biên dịch các chương trình rất lớn viết trên vài ngàn dòng lệnh.
Phụ lục 9 hướng dẫn phương pháp gỡ rồi và chạy chương trình từng bước để dò tìm lỗi chương trình.
Phụ lục 10 trình bày 6 mô hình bộ nhớ của C. Cũng sẽ nói cách tạo tệp chương trình đuôi COM bằng cách dịch theo mô hình Tiny trong chế độ dòng lệnh TCC (xem phụ lục 8). Cũng cần nói thêm, khi biên dịch chương trình thường nhận được các tệp chương trình đuôi EXE.
Phụ lục 11 trình bày tóm tắt các hàm Turbo C theo thứ tự ABC.
Phụ lục 12 trình bày cách xây dựng các hàm với đối số bất định, như các thủ tục writeln, readln của Pascal và các hàm printf, scanf của C. Công cụ chủ yếu được dùng là con trỏ và danh sách.
Phụ lục 13 trình bày cách bắt một phím hoặc một tổ hợp phím bất kỳ (như tổ hợp 2 phím Ctrl End, tổ hợp 3 phím Ctrl Alt Del) và trình bày một số hàm tiện ích thường dùng khi cài đặt chương trình như các hàm tạo menu trong chế độ văn bản và đồ hoạ, hàm vẽ đồ thị cho hàm có một biến số thực.
Khi viết chúng tôi đã cố gắng để giáo trình được hoàn chỉnh, song chắc chắn không tránh khỏi thiết sót, vì vậy rất mong nhận được góp ý của độc giả để giáo trình ngày một hoàn thiện hơn.