You are on page 1of 40

Lập Trình python

I. Kiến thức cho người bắt đầu

In ra màn hình Giải Thích


Cú pháp python3. Hàm print dùng để in ra màn
print(“wellcome to python”) hình ở chế độ console.

Cách chạy hay thực thi một ctrinh


I. Kiến thức cho người bắt đầu

Từ khóa Giải Thích

1, and
Dùng để so sánh hai đối tượng trở lên

2, assert
Dùng để kiểm tra đúng sai. Đúng thì
chạy bước tiếp theo còn sai thì sinh ra
lỗi AssertionError
3, break
Dùng khi muốn thoát vòng lặp for hoặc
while

4, class
Để tạo một lớp đối tượng cùng thuộc
tính với nhau.
I. Kiến thức cho người bắt đầu

Từ khóa Giải Thích

5, continue
Dùng để bỏ qua phần cọn lại của code
trong vòng lặp
6, def
Dùng để khai báo hàm

7, del
Dùng để xóa một biến hoặc một phần
tử

8.elif

9.else
I. Kiến thức cho người bắt đầu

Từ khóa Giải Thích

10, if

11, try

12, except

13.exec
exec(doituong, global, local)
doituong: một chuỗi hoặc mã đối tượng
global: một dictionary chỉ định các phương thức và biến global có sẵn.
Global là tham số không bắt buộc.
local: một đối tượng ánh xạ. Local là tham số không bắt buộc.
I. Kiến thức cho người bắt đầu

Từ khóa Giải Thích

14, finally

15, for
for bien_lap in chuoi_lap:
       Khối lệnh

16, from

17, global
là biến toàn cục dùng để sử dụng kế
thừa giá trị khởi tạo lúc ban đầu.
I. Kiến thức cho người bắt đầu

Từ khóa Giải Thích

18, import

19, in

20, is

21, lambda
lambda tham_so: bieu_thuc
Hàm Lambda có thể có nhiều tham số
nhưng chỉ có 1 biểu thức.
I. Kiến thức cho người bắt đầu

Từ khóa Giải Thích

22, not

23, or

24, pass
khi nào chưa biết code gì trong hàm
thì dùng đến pass
25, print

26, raise
Dùng để xử dụng để tạo
một exception
I. Kiến thức cho người bắt đầu

Từ khóa Giải Thích

27, return

28, try

29, while

30, with

31, yield
Giống như return nhưng
có thể trả về nhiều giá trị
I. Kiến thức cho người bắt đầu

Kiểu của biến Giải Thích


Gán giá trị(assigning value)
counter = 100 # An integer assignment
miles = 1000.0 # A floating point
name = "John" # A string
Multiple Assignment
a=b=c=1

1, number
var1=1
var2=1.5

2, string
str = 'Hello World!'
print str
print str[0]
print str[2:5]
print str[2:]
print str * 2
print str + "TEST"
I. Kiến thức cho người bắt đầu

Kiểu của biến Giải Thích


2, list
list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
print(list)
print( list[0])
print( list[1:3])
print (list[2:])
print( tinylist * 2)
print(list + tinylist)

3, tuple
I. Kiến thức cho người bắt đầu

Kiểu của biến Giải Thích


Sự khác biệt giữa kiểu list và kiểu tuple
lst = [2, 4, 3, "ABC", 3, [6, 4, 2]] tup = (2, "ABC", 7, 3, [4,3,7], True, 3)
1,Truy cập đến một phần tử trong mảng: tup[2]
1, Truy cập đến một phần tử trong mảng: lst[2]

2, Gán giá trị mới cho một phần tử trong mảng: lst[2]=100 2, không thể Gán giá trị mới cho một phần tử trong tuple:

3,lấy độ dài của mảng: len(lst)


3, lấy độ dài của mảng: len(lst)
4, Thêm phần tử mới vào mảng: lst.append(True) 4, Không thể Thêm phần tử mới vào mảng:

5, Gộp hai mảng: any_lst = ['one', 'two', 'three'] 5, Không thể Gộp hai mảng:
lst.extend(any_lst)
6, Không thể Sắp xếp hay đảo ngược
6, Sắp xếp hay đảo ngược
lst.sort()# sap tu nho toi lon
lst.sort(reverse = True)# sap tu lon toi nho

4, set

5, dictionary
I. Kiến thức cho người bắt đầu

Datetime Giải Thích


import datetime
from datetime import date
now=datetime.datetime.now()
print(datetime.datetime.now())
print(datetime.date.today())
print(datetime.date.today().strftime('%d.%m.
%y'))
print(now.strftime('%d.%m.%y %H.%M.%S'))

Dir()
dùng để liệt kê các hàm trong một class

Modules
dùng để liệt kê các hàm trong một class
I. Kiến thức cho người bắt đầu

IO Giải Thích
1,in ra màn hình print()
2, đọc từ bàn phím input()

3, read()
import sys,os
path=os.getcwd()
filename='\output.txt'
print(path+filename)
buff=open(path+filename,"r+")
print(buff.read(1024))

4, write()
I. Kiến thức cho người bắt đầu

IO Giải Thích
5,remove()
xoa file

6, tell()
vi tri file

7, mkdir()
tao thu muc os.mkdir('test')
os.mkdir('test')

8, listdir(path)
liet ke ten cac file trong thu muc bao gom ca
thu muc

9, chdir(path)
thay foi thu muc hien hanh
I. Kiến thức cho người bắt đầu

IO Giải Thích

10, path
II. Kiến thức nâng cao

re Giải Thích
1, math
dùng để kiểm tra đối xứng

2, search
dùng để kiểm tra đối xứng
sự khác biệt giữa math và search là search sẽ
tìm rộng hơn có thể tìm khi ký tự ở cuối chuỗi
còn match thì không.
II. Kiến thức nâng cao

re Giải Thích
3, sub
dùng để thay thế một ký tự bất kỳ
II. Kiến thức nâng cao

HSV Giải Thích


Không gian màu HSB, còn gọi là không gian
màu HSV, là một không gian màu dựa trên ba
số liệu:
H: (Hue) Vùng màu
S: (Saturation) Độ bão hòa màu
B (hay V): (Bright hay Value) Độ sáng
II. Kiến thức nâng cao

HSV Giải Thích


H: (Hue) Vùng màu

S: (Saturation) Độ bão hòa màu


II. Kiến thức nâng cao

HSV Giải Thích


B (hay V): (Bright hay Value) Độ sáng

Kết Luận: Ví dụ:


Khi nhìn vào giá trị H ta sẽ biết được H=0, nghĩa là mầu đỏ, Trong mspaint
nó là mầu gì. Sau đó kiểm tra giá trị S H có giá trị từ 0 tới 239
ta sẽ thấy độ đậm nhạt của mầu, tiếp S=100 % thì mầu đỏ gốc tương ứng là
tục xem giá trị V sẽ biết được độ 240 trong mspain
sáng, tối của mầu V=50% thì độ sáng tương ứng là 120
trong mspain
II. Kiến thức nâng cao

Filter Giải Thích


1, BilateralFilter
dst=cv.bilateralFilter(src, d, sigmaColor,
sigmaSpace[, dst[, borderType]]) img=cv2.imread(filename,0)
sigma<10 it bi anh huong img_filter=cv2.bilateralFilter(img,9,200,200)
sigma>150 bi anh huong lon
filter size:d
d>5. thi chuong trinh se bi nang
d=5 la khuyen dung
d=9 neu ra nhieu nhieu

2, Blur img_blur=cv2.blur(img,(3,3))
dst=cv.blur(src, ksize[, dst[, anchor[, borderType]]]) img=cv2.resize(img,None,fx=2,fy=2,interpolation=1)
img[np.where(img<60)]=0
img[np.where(img>95)]=255
II. Kiến thức nâng cao

Filter Giải Thích


3, boxFilter()
dst=cv.boxFilter(src, ddepth, ksize[, dst[, anchor[, cv2.boxFilter(img,-1, (1,1), img, (-1,-1), False,
normalize[, borderType]]]]) cv2.BORDER_DEFAULT)

4, buildPyramid()
dst=buildPyramid(src,dst,malevel,borderType)
II. Kiến thức nâng cao

Filter Giải Thích


5, dilate
dst=cv.dilate(src, kernel[, dst[, anchor[, iterations[, M=np.ones((3,3),np.uint8)
borderType[, borderValue]]]]]) dst=cv2.dilate(img,M,iterations=1)

6, erode
dst=cv.erode(src, kernel[, dst[, anchor[, iterations[, M=np.ones((3,3),np.uint8)
borderType[, borderValue]]]]]) dst=cv2.erode(img,M,iterations=1)

7, filter2D kernel = np.ones((6,5),np.float32)/25


dst=cv.filter2D(src, ddepth, kernel[, dst[, anchor[, dst=cv2.filter2D(img,-1,kernel)
delta[, borderType]]]])

8, GaussianBlur dst=cv2.GaussianBlur(img,(7,7),cv2.BORDER_DEFAULT)
dst=cv.GaussianBlur(src, ksize, sigmaX[, dst[,
sigmaY[, borderType]]])

9, Laplacian dst=cv2.Laplacian(img,cv2.CV_32F)
dst=cv.Laplacian(src, ddepth[, dst[, ksize[, scale[,
delta[, borderType]]]]])
II. Kiến thức nâng cao

Filter Giải Thích


10, medianBlur()
dst=cv.medianBlur(src, ksize[, dst]) dst=cv2.medianBlur(img,(5))
type <class 'numpy.ndarray'>

chinh sua pixel chinh sua pixel chinh sua pixel


#chinh sua so lieu 1 cot #chinh sua so lieu 1 so phan tu o mot cot tu vi tri 5 toi 13 #chinh sua so lieu ca cot va hang tu vi tri bat ky
# mask=np.zeros((20,15),np.uint8) # mask=np.zeros((20,15),np.uint8) # mask=np.zeros((20,15),np.uint8)
# print(mask.shape) # mask[5:13,3]=255 # mask1=np.zeros((5,6),np.uint8)
# mask[10,5]=100 # print(mask) # mask1[:]=255
# mask[11,5]=100 # #chinh sua so lieu 8 so phan tu o mot cot tu vi tri 1 toi 8 # w,h=mask1.shape
# mask[10,10]=100 # mask=np.zeros((20,15),np.uint8) # mask[3:w+3,3:h+3]=255
# w,h=mask.shape # mask[:8,5]=255 #
# print(mask) # print(mask) # print(mask)
# count=0 chinh sua pixel chinh sua pixel
# for i in range(h): #chinh sua so lieu o vi tri so 8 va so 5 tu 1 cot #chinh sua so lieu ca cot va hang tu vi tri bat ky theo vong lap
# for j in range(w):
# mask=np.zeros((20,15),np.uint8) mask=np.zeros((20,15),np.uint8)
# coor=mask[j,i]
# mask[:8:5,5]=255 mask1=np.zeros((5,6),np.uint8)
#
# print(mask) mask1[:]=255
# if coor==100:
#chinh sua so lieu toan bo phan tu cua 1 cot mask1[3,3]=100
# count=count+1
# mask=np.zeros((20,15),np.uint8) print(mask1)
# if j==w-1:
# mask[:,3]=255 w,h=mask1.shape
# if count>=2:
# print(mask) # mask[0:1,0:1]=255
# mask[:,i]=0
# print("count",count)
chinh sua pixel # mask[1:2,0:1]=10
#chinh sua so lieu ca cot va hang tu vi tri 0 # mask[0:1,1:2]=20
# print("j", j)
# mask=np.zeros((20,15),np.uint8) # mask[0:1,2:3]=25
# print("i", i)
# mask1=np.zeros((5,6),np.uint8) for i in range(w):
# count=0
# mask1[:]=255 for j in range(h):
# print(mask)
# w,h=mask1.shape coor=mask1[i,j]
# mask[0:w,:h]=255 mask[i+3:1+i+3,j+3:j+1+3]=coor
#print(mask) print(mask)
II. Kiến thức nâng cao

Object size Giải Thích


Step1:
-tìm đường viền của ảnh bằng hàm findContours
Step2:
Tìm được tọa độ góc phía trên cùng tay trái, độ
rộng, chiều cao sử dụng hàm minArea
Step3:
Chuyển giá trị vừa tìm được ở bước 2 sang 4 góc tọa độ bằng hàm boxPoint
Step4:
Chuyển giá trị vừa tìm được ở bước 3 sang 4 góc tọa độ kiểu số nguyên bằng hàm
np.array(box, dtype="int")
Step5:
Chuyển giá trị vừa tìm được ở bước 4 sang 4 góc tọa độ được sắp xếp cố định bằng
hàm perspective.order_points(box)
Step6:
dựa vào kết quả bước 5 vẽ một hình chữ nhật bao quanh object bằng hàm
drawContours
Step7:
Vẽ 4 góc của object bằng hàm cv2.circle(orig, (int(x), int(y)), 3, (0, 0, 255), 20)
Step8:
tính khoảng cachs bằng hàm dist.euclidean
Step9:
chuyen doi sang duong kinh if pixelsPerMetric is None:
pixelsPerMetric = dB / 0.955
print("pixelsPerMetric",pixelsPerMetric)
dimA = dA / pixelsPerMetric
II. Kiến thức nâng cao

Array in numpy Giải Thích


Two-D Two-D
-Nhìn vào mảng twoD thì có 4 hàng và mỗi hàng có twoD=np.array([
3 phần tử [1,2,3],
[41,51,61],
[42,52,62],
[43,53,63]
])
#lay index dau tien theo hang
print(twoD[0])
print(twoD[3])
#lay index dau tien theo cot
print(twoD[:,0])
print(twoD[:,2])

Three-D
-Nhìn vào mảng threeD thì có 2 mảng 2D trong
mảng 2D có 4 mảng 1D và trong 1D có 3 phần tử
ndim=3,2,3
ket luan: Có 3 mảng hai chiều, trong mảng hai chiều
có 2 mảng một chiều, và trong mảng một chiều có 3
phần tử
II. Kiến thức nâng cao

cv2.rotate Giải Thích


You can enter rotateCode= 0 or 1 or 2. Depends on Two-D
your rotation. It's gonna give you 0 or 90 or 180 or twoD=np.array([
270 angles [1,2,3],
[41,51,61],
[42,52,62],
[43,53,63]
])
#lay index dau tien theo hang
print(twoD[0])
print(twoD[3])
#lay index dau tien theo cot
print(twoD[:,0])
print(twoD[:,2])
II. Kiến thức nâng cao

Ghi chú Giải Thích


Ảnh xám: 1pixel=[0 tới 256]

Ảnh mầu: 1pixel=3 lần [0 tới 256] theo hệ mầu RGB còn
theo hệ HSV thì giá trị của h là 0:180
chuyển dữ liệu 1D thành một ảnh xám(2D): đầu tiên phải
biết được tổng số dữ liệu, sau đó quy ước kích thước của
ảnh. Ví dụ:
#quy ước kích thước ảnh là 400*300
# tạo một dữ liệu có 120000 giá trị ngẫu nhiên.
flatArrayRandom=bytearray(os.urandom(120000) path=os.getcwd()
filename=path+'\\3.png'
#sử dụng reshape của numpy để convert thành ảnh xám img=cv2.imread(filename,1)
grayImage=ArrayRandom.reshape(300,400) w,h,c=img.shape
chuyển dữ liệu 1D thành một ảnh xám(3D): đầu tiên phải flat=np.array(img).flatten()
area=flat.size/3
biết được tổng số dữ liệu, sau đó quy ước kích thước của
w1=int(area/h)
ảnh. Ví dụ: h1=np.int0(area/w)
#quy ước kích thước ảnh là 100*400 print("w1,h1",w1,h1)
# tạo một dữ liệu có 120000 giá trị ngẫu nhiên. print("w,h,c",w,h,c)
flatArrayRandom=bytearray(os.urandom(120000) imageColor=flat.reshape(w1,h1,3)
#sử dụng reshape của numpy để convert thành ảnh mầu cv2.imshow("imageColor",imageColor)
cv2.imshow("orginal",img)
colorImage=ArrayRandom.reshape(100,400,3)
cv2.waitKey(0)
cv2.destroyAllWindows()
II. Kiến thức nâng cao

Ghi chú Giải Thích

Thuoc tinh:
class t(object):
def __init__(self):
pass
@property
def channel(self):
return self.channel
# @channel.setter
t.channel=5
II. Machine learning

Supervised learning(hoc co giam sat) Giải Thích

Lý thuyết:
Ta cần chuẩn bị cặp dữ liệu (data,label). Data chính là dữ
liệu hay là các đặc điểm của đối tượng, còn label chính là
gán cho mỗi một đối tượng một cái tên.
Có hai loại supervised là classification và regression:
Sự khác biệt của chúng là ở phần gán lable. Classification
thì có số nhãn lable cố định, còn regression thì lable là
một giá trị cụ thể

Sklearn
iris and digits là hai dữ liệu cho bài toán classification
boston house price dataset cho regression
To xay dung mot cai Model thi feature phai la kieu
numeric

Recognize text
b1. cho moi mot chu cai vao mot thu muc
b2. gan moi mot thu muc voi mot so id, so id o day phai
la dang number
II. Machine learning_Sklearn

Supervised learning(hoc co giam sat) Giải Thích


Ví dụ
KNN hay còn gọi là nearest neighbor
b1: Thuật toán này dựa trên công thức tính khoảng cách
giữa hai điểm trong tọa độ không gian theo công thức
P1(x1,y1),P2(x2,y2)
d=sqrt((x2−x1)2+(y2−y1)2)
b2. Tính được khoảng cách d trên thì sắp xếp giá trị từ
nhỏ tới lớn
b3. chọn giá trị K,
b4 đưa ra kết luận
II. Machine learning_Sklearn

Supervised learning(hoc co giam sat) Giải Thích


Ví dụ

Xử lý dữ liệu đầu vào(data,label) với 2D


b1:Tạo ra một tập hợp dữ liệu đầu vào, input ở đây chính
là các feature của ảnh, ví dụ feature : Chiều dài, rộng, cao,
diện tích, giá trị pixel, trong toàn bộ giá trị pixel của ảnh có
thể chia ra nhiều mảng
b2. Tạo label
b3: lưu dữ liệu đầu vào va lable thành file csv. Chú ý là mỗi
lable chỉ được gán với một loại đối tượng, và lable sẽ ở
cột cuối cùng
b4. A=load dữ liệu từ file csv . Chú ý nếu dữ liệu đầu vào
là kiểu array thì phải chuyển sang np.array
b5. Tách dữ liệu thành hai thành phần bằng cách sau
data=A[:,:-1] #lấy toàn bộ dữ liệu trừ phần tử cuối cùng
label=A[:,-1] #chỉ lấy phần tử cuối cùng
II. Machine learning_Sklearn

Supervised learning(hoc co giam sat) Giải Thích


Ví dụ

Linear regression(hồi quy tuyến tính)


là một phương pháp dự đoán biến phụ thuộc Y dựa trên
các biến độc lạp X.
Y= Bo+ B1*X
Y: Biến phụ thuộc
X:Biến độc lập
B0: Hằng số
B1:hệ số mối quan hệ giữa X và Y.
II. Machine learning_Sklearn

Supervised learning(hoc co giam sat) Giải Thích


Linear regression(hồi quy tuyến tính)
Microsoft Excel
Hệ số tương quan Worksheet
Xác xuất thống kê

Khái niệm về dữ liệu


Thang đo dữ liệu
Xác xuất thống kê

Thống kê mô tả

Số trung vị
Xác xuất thống kê

Có nghĩa là số này sẽ có p% các số khác


trong cùng tập dữ liệu sẽ nhỏ hơn hoạc
bằng. Và sẽ có 100-P% dữ liệu còn lại
lớn hơn
Xác xuất thống kê
Moca Divice Setup

PC
RF cable
RJ45

Model Name of Moca


Device

You might also like