Một vài khái niệm cơ bản về Ảnh số là gì, Ảnh số là gì
Một hình hình họa trong máy vi tính được khái niệm với hàm hai chiều, $f(x,y)$ trong các số đó $x$ và $y$ là tọa độ không khí (phương diện phẳng) và biên độ của $f$ trên ngẫu nhiên cặp tọa độ $(x,y)$ như thế nào được Điện thoại tư vấn là cường độ hoặc mức xám của hình hình ảnh trên đặc điểm đó. lúc $x$, $y$ với những cực hiếm độ mạnh của $f$ gần như là các đại lượng hữu hạn, tránh rộc, bọn họ gọi hình hình họa là hình hình ảnh kỹ thuật số (tuyệt hình hình ảnh số). Một hình hình ảnh kỹ thuật số bao hàm một lượng hữu hạn các thành phần, mỗi thành phần bao gồm một vị trí cùng giá trị rõ ràng. Các thành phần này được điện thoại tư vấn là điểm hình ảnh (pixel). Hình 1 dưới đây minh họa quý giá của một vùng ảnh kỹ thuật số theo khái niệm này. Lĩnh vực cách xử lý hình hình họa kỹ thuật số chú trọng vào bài toán giải pháp xử lý hình ảnh tiên tiến nhất sử dụng máy vi tính. Định nghĩa này sẽ được trình bày theo những thuật ngữ một cách cụ thể rộng vào các phần sau.
Bạn đang xem: Một vài khái niệm cơ bản về Ảnh số là gì, Ảnh số là gì

Nlỗi đã đề cập ở phần trmong, cực hiếm mức xám một hình hình họa số thường được biểu diễn bởi một hàm số $f(x, y)$ mang lại một mặt phẳng lưới cất M sản phẩm cùng N cột, trong các số đó x và y là tọa độ nguyên tách rạc. Thông thường, quý giá ngulặng sẽ được sử dụng để biểu diễn cho những tọa độ rời rốc này với $x=0, 1, 2, ldots,left(M-1 ight)$ cùng $y=0, 1, 2, ldots,left(N-1 ight)$. Ví dụ, cực hiếm mức xám của hình hình ảnh số trên điểm cội là $f(0, 0)$ với cực hiếm tại tọa độ tiếp sau theo sản phẩm dọc trước tiên là $f(0, 1)$. Nếu xem 1 hình ảnh số là một ma trận, giá trị mức xám của hình họa sẽ được biểu diễn dưới dạng một ma trận có quý hiếm ngulặng rời rạc nhỏng dưới đây:
$$fleft(x,y ight)=left<eginmatrixf(0, 0)& f(0, 1) &cdots& f(0, N-1) \f(1, 0)&f(1, 1)&cdots&f(1, N-1)\vdots&vdots& &vdots\f(M-1, 0)&f(M-1, 1)&cdots&f(M-1, N-1)\endmatrix ight> $$
Hình 2 dưới đây minc họa ba cách biểu diễn một hình ảnh đối kháng sắc (còn đọc là hình họa trắng đen) vào các dạng không gian và kiểu cực hiếm khác nhau.

Ta rất có thể hình dung rằng, ứng cùng với mỗi vị trí (x, y) thì f(x, y) là hàm số được biểu diễn là 1 trong những véc-tơ bao gồm số ở trong tính tương xứng cùng với số kênh color. Từ đó ta hoàn toàn có thể thấy hình 2 biểu diễn hình black trắng với f(x, y) là véc-tơ với cùng 1 thuộc tính. Thế nếu như có tương đối nhiều rộng một kênh màu sắc thì sao?
3.1. Không gian color RGB
Từ cha màu cơ bản: đỏ (Red), xanh lục (Green) và xanh lam (Blue), chúng ta có thể mang lại tất cả các phổ màu nhìn thấy được với một tỷ lệ cường độ trộn màu sự so sánh. Dựa trên tiền đề đó, trong không khí màu RGB, các màu được biểu diễn với các thành phần phổ chính của chính nó là đỏ $(R)$, xanh lục $(G)$, xanh lam $(B)$. Mô hình này được thể hiện trên một hệ tọa độ Descartes. Nhỏng được minch họa ở Hình 3, những quý giá bao gồm đỏ $(R)$, xanh lục $(G)$, xanh lam $(B)$ nằm ở cha góc; các màu đồ vật cấp cho lục lam, đỏ tươi với đá quý nằm ở cha góc khác; màu Đen là ở gốc; với white color là ở góc cạnh xa nhất tự nơi bắt đầu.
Nếu chúng ta coi mỗi trục màu có kích thmong 8 bit, từng px color RGB được biểu diễn với mỗi cỗ bố cực hiếm $left

Vậy trường đoản cú ba màu cơ bản: đỏ (Red), xanh lục (Green) và xanh lam (Blue), chúng ta có thể mang lại một hình ảnh cùng với hàm là $f(x, y) =
3.2. Không gian màu sắc HSV
Không gian màu RGB ko phải là một tế bào hình màu đặc trưng phù hợp mang đến việc đặc tả màu sắc. Một ví dụ đó là giả sử chúng muốn mang tới màu tím đậm. Theo RGB, màu tím là màu dựa trên từ màu đỏ và màu xanh lam. Như vậy, rõ ràng là chúng ta không biết được chính xác tỉ lệ của 2 màu cơ bản này để trộn ra được độ đậm nhạt của màu tím mà chúng ta mong muốn. Do đó, mô hình màu HSV ra đời để giúp chúng ta có được câu trả lời về màu sắc mà ko cần quan tâm đến sự pha trộn của bố màu cơ bản đỏ, lục với lam.

HSV là một mô hình màu sắc được mô tả bởi một không khí tía chiều hình trụ, ánh xạ lại các màu sắc cơ phiên bản RGB thành bố trục với các tính chất hình mẫu của màu sắc đó là: Color (Hue), độ bão hòa (Saturation) cùng giá trị (Value). Trong đó:
Hue hướng dẫn và chỉ định góc của màu bên trên một mặt tròn. Ứng với mỗi góc đo, chúng ta có được các màu sắc sự so sánh như trình bày ở bảng dưới đây:

Không gian color HSV khá giống với cách con bạn cảm nhận Màu sắc. Mô hình màu sắc HSV thường được sử dụng Khi chúng ta cần chọn một màu với một thang đo chính xác vì chưng HSV đặc tả màu sắc xuất sắc hơn tuy thế thang đo khác tương quan cho Màu sắc như mô hình màu sắc RGB.
Biểu diễn một hình hình họa sống không gian màu sắc HSV cũng không quá không giống RGB đối với một hình họa. Trong thời điểm này ta có hàm là $f(x, y) =
3.3. Các không khí khác
Ngoài ra chúng ta còn có không giống không gian màu khác như grayscale, CIE, CMYK tùy thuộc mang lại các tình huống khác nhau.

4.1. Thiết lập “khu vực quan lại tâm”:
khi được cho một hình ảnh, ta hoàn toàn có thể giảm những vùng Gọi là "khu vực quan liêu tâm" thoát khỏi ảnh, chọn các một miền cực hiếm trực thuộc miền lúc đầu.
Trước không còn ta cần phải ghi nhớ hệ tọa độ đối với một hình ảnh là hệ Oxy với điểm khác: Ox tia hướng xuống cùng Oy hướng lịch sự cần (Hình 6):

Thế đề nghị, trả sử ta bao gồm hình:

Nếu ta lựa chọn vùng chữ nhật với thông số

Thao tác này rất hữu ích để thực hiện đổi khác chỉ một hay một số vùng ảnh nhất mực và áp lại vào hình họa ban đầu tốt hình ảnh không giống.
Các chúng ta có thể demo với code Python sau cùng với hình ảnh của mình:
import cv2# Lấy hình ảnh ban đầuimg = cv2.imread("name.png")# Các tọa độx=130y=130h=250w=250# Cắt "Khu vực quan lại tâm"subimg = img Xem thêm: Vulgar Là Gì - Nghĩa Của Từ Vulgar4.2. Chia kênh màu:
Nếu một hình ảnh có rất nhiều kênh màu sắc thì có thể phân tách hẳn những kênh color ấy ra thành những ảnh riêng biệt.
Tiếp tục cùng với hình họa Lenmãng cầu, ta có thể giảm ảnh đó ra thành:

Nếu chúng ta lưu ý thì sắc đỏ của hình ảnh màu sắc Lenmãng cầu (hình 7) khôn xiết đậm, với khi giảm ra thì tương xứng kênh màu đỏ khôn xiết sáng.
Các chúng ta có thể demo cùng với code Pykhiêm tốn sau cùng với ảnh của mình:
import cv2# Lấy hình họa ban đầuimg = cv2.imread("name.png")# Chia hình họa ra cha kênh màu sắc Lam, Lục, Đỏb, g, r = cv2.split(img)# Chiếu ảnhcv2.imshow("Blue channel", b)cv2.imshow("Green channel", g)cv2.imshow("Red channel", r)cv2.waitKey(0)cv2.destroyAllWindows()5. Ảnh là 1 hàm so61:
5.1. Độ sáng sủa & tương phản
$$ gleft(x,y ight)=alphaast fleft(x,y ight)+eta $$Với $f$ là hàm hình họa ban sơ cùng $alpha$, $eta$ là nhị hằng số thực bất kỳ thì g đang là hàm ảnh tác dụng khớp ứng mang đến từng địa chỉ $(x, y)$, tức $f(x, y)$ là quý hiếm màu sắc trên pixel $(x, y)$, cùng với $alpha$, $eta$ được Hotline là các hằng số gain, bias.Ta rất có thể coi sẽ là việc biến đổi nấc tích điện của ảnh, và nó vô cùng hữu dụng trong việc hiểu rõ hình ảnh đến đôi mắt fan để xem thấy phần đa cụ thể lúc ảnh tương đối tối.

Các bạn cũng có thể thử với code Pythanh mảnh sau với ảnh của mình:
import cv2import numpy as np# Lấy ảnh ban đầuimg = cv2.imread("name.png")# Các biến số cần thiếtaltrộn = 1.5beta = 2# Các thao tácnimg = np.round(alpha * img + beta) # Phải làm cho tròn để chỉ duy trì số nguyênnimg = np.maximum(nimg, 0) # Số tốt nhất ko được nhỏ thêm hơn 0nimg = np.minimum(nimg, 255) # Số lớn số 1 không được lớn hơn 255nimg = nimg.astype(np.uint8) # Cuối thuộc, những số của ma trận ảnh thuộc đoạn <0, 255># Chiếu ảnhcv2.imshow("New image", nimg)cv2.waitKey(0)cv2.destroyAllWindows()
5.2. Pân hận màu
$$gleft(x,y ight)=left(1-alpha ight)ast f_0left(x,y ight)+alphaast f_1left(x,y ight)$$Với $f_0$, $f_1$ là đa số hàm ảnh mang đến trước với $alphainleft<0,1 ight>$ là hằng số thực thì $g$ đã là hàm hình họa công dụng tương ứng mang lại từng địa điểm $(x, y)$.
Ta có thể thấy giả dụ tăng $alpha$ trường đoản cú 0 mang lại 1 thì các quý hiếm của $f_0$ sẽ không thể ảnh hưởng cho tới hiệu quả $g$, $f_0$ ‘’rã’’ dần dần và $f_1$ hiện lên. Hiệu ứng sẽ ngược chở lại nếu sút $alpha$. Hiệu ảnh phối hình họa được sử dụng tương đối nhiều vào phyên ổn ảnh.

Các chúng ta cũng có thể demo cùng với code Pyeo hẹp sau với hình họa của mình:
import numpy as npimport cv2# Lấy những hình ảnh ban đầulenmãng cầu = cv2.imread("name_1.png")feynman = cv2.imread("name_2.png")# Các thông số kỹ thuật nên thiếtalpha = 1dec = 0.02# Với nhiều quý giá altrộn khác nhau từ 1 xuống 0:while altrộn >= 0.0: # Pân hận ảnh img = (lenmãng cầu * alpha + feynman * (1 - alpha)).astype(np.uint8) # Chiếu ảnh đã được păn năn cv2.imshow("Frame", img) cv2.waitKey(100) # Tiếp tục vòng lặp với cùng 1 altrộn không giống alpha = altrộn - deccv2.destroyAllWindows()
5.3. Nhiễu
$$gleft(x,y ight)=fleft(x,y ight)+etaleft(x,y ight)$$Với $f$ là hàm hình ảnh được thu và $eta$ là hàm ảnh khiến nhiễu tạo nên vì chưng sản phẩm công nghệ ghi biểu thị thì $g$ là hình ảnh thực nhưng ta có.
Tùy phương thức và vật dụng ghi hình thì hoàn toàn có thể xuất hiện thêm các nhiều loại nhiễu:
Nhiễu gauss:


Để demo xúc tiến cùng với nhiễu, các chúng ta có thể thí điểm với đoạn code tạo thành nhiễu Gauss sau đây bằng Python:
import numpy as npimport cv2# Lấy hình ảnh ban đầuimg = cv2.imread("name.png")# Tạo nhiễu Gaussgauss = np.random.normal(0,1,img.size)gauss = gauss.reshape(img.shape<0>,img.shape<1>,img.shape<2>).astype("uint8")# Ảnh sau khi đang thêm nhiễuimg_gauss = cv2.add(img, gauss)# Chiếu những ảnhcv2.imshow("Noise", gauss) # Phần nhiễucv2.imshow("Noisy Image", img_gauss) # Ảnh vẫn thêm phần nhiễucv2.waitKey(0)cv2.destroyAllWindows()
5.4. Khác biệt thân những ảnh
$$gleft(x,y ight)=mid f_0left(x,y ight)-f_1left(x,y ight)mid$$Với $f_0$, $f_1$ là gần như hàm hình họa đến trước g đang là hàm ảnh tác dụng tương xứng mang lại khác biệt giữa 2 ảnh nghỉ ngơi từng vị trí $(x, y)$.

Tìm kiếm sự khác biệt giữa 2 hình ảnh được áp dụng các trong việc tìm và đào bới “đồ vật đưa động” bằng cách đối chiếu biệt lập giữa hình ảnh thật cùng hình nền (Hình 17).

Các bạn cũng có thể demo cùng với code Pybé nhỏ sau với những hình ảnh của mình:
import cv2# Lấy các ảnh ban đầuimg_1 = cv2.imread("name_1.png")img_2 = cv2.imread("name_2.png")# Khác biệt ảnhdiff = cv2.subtract(img_1, img_2)# Chiếu ảnhcv2.imshow("Diff Frame", diff)cv2.waitKey(0)cv2.destroyAllWindows()6. ReferencesSách Digital Image Processing - Rafael C. Gonzalez, Richard E. Woods
https://medium.com/hipster-color-science/a-beginners-guide-to-colorimetry-401f1830b65a
http://learn.leighcotnoir.com/artspeak/elements-color/hue-value-saturation/
https://docs.opencv.org/3.4/d3/dc1/tutorial_basic_linear_transkhung.html
https://docs.opencv.org/3.4/d1/dc5/tutorial_background_subtraction.html