Một Vài Khái Niệm Cơ Bản Về Ảnh Số Là Gì, Ảnh Số Là Gì

      111
1.Thế làm sao là ảnh kĩ thuật số?

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ì

*
Hình 1 – Giá trị mức xám của một vùng ảnh kỹ thuật số binary.2. Biểu diễn hình ảnh bên dưới dạng một hàm số:

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.

*
Hình 2 – Ba cách biểu diễn một hình ảnh số.3. Các không khí màu

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$ bao gồm kích thcầu 24 bit. Thuật ngữ hình hình ảnh màu sắc thường xuyên dùng nhằm biểu thị hình ảnh màu RGB với kích thmong 24 bit. Tổng số màu trong không gian màu RGB 24 bit là $left(2^8 ight)^3=16 777 216$ màu. Do đó, giá trị màu tại mỗi điểm trong không khí RBG này chính là tọa độ bố chiều $left$. Mỗi trục tọa độ có giới hạn trong khoảng $left<0, 255 ight>$. Ví dụ, màu trắng sinh hoạt đông đảo điểm $left<255, 255, 255 ight>$; màu black ở điểm $left<0, 0, 0 ight>$; và màu vàng $left<255, 255, 0 ight>$.

*
Hình 3 – Không gian màu RGB bên trên hệ trục tọa độ Descartes

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) = $, với từng trực thuộc tính trong véc-tơ khớp ứng với giá trị nghỉ ngơi từng kênh color.

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.

*
Hình 4 – Minc họa mô hình màu HSV với cha thành phần cơ bản Color (Hue), độ bão hòa (Saturation) với quý hiếm (Value)

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:
*
Hình 5 – Bảng tóm tắt thông báo màu sắc ở khi xét ở trục Hue vào không khí HSVĐộ bão hòa (Saturation) biểu lộ mức độ tinc khiết của màu sắc vào không khí color. Độ bão hòa màu nằm trong gần đúng từ 0 cho 100% (Trong một số tài liệu, thang đo này có cực hiếm thực nằm trong giao động 0-1). Tương ứng với các quý hiếm, một màu cùng với độ bão hòa 100% đang là màu tinc khiết duy nhất rất có thể, trong những lúc với độ bão hòa 0% màu sắc có sắc xám, màu nphân tử là vì mức bão hòa phải chăng rộng.
*
Hình 6 – Bảng tóm tắt thông tin màu sắc khi xét ở trục nhì trục Saturation với Value cùng với red color (nguồn learn.leighcotnoir.com).Giá trị (Value) kiểm soát và điều hành khả năng chiếu sáng tối của color sắc. Độ sáng tối của màu nằm trong khoảng từ 0 cho 100% (Trong một số tài liệu, thang đo này có quý hiếm thực nằm trong giao động 0-1). Một màu sắc có mức giá trị 0% là color black thuần khiết, trong những lúc màu bao gồm khả năng chiếu sáng 100% là màu sáng độc nhất hoàn toàn có thể của màu sắc kia, ứng cùng với độ bão hòa.

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) = $, cùng với từng thuộc tính trong véc-tơ khớp ứng với giá trị nghỉ ngơi mỗi kênh color.

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.

*
Hình không khí màu sắc CIE (mối cung cấp Chandler Abrayêu thích sinh sống medium.com)4. Thao tác cơ bản với ảnh

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):

*
Hình 7

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

*
Hình 8 - Hình ảnh Lenmãng cầu cùng với diện tích S 512x512

Nếu ta lựa chọn vùng chữ nhật với thông số = <130, 130, 250, 250> thì ta sẽ có được nlỗi sau:

*
Hình 9 - Khu vực quan liêu tâm

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 # Chiếu ảnhcv2.imshow("ROI", subimg)cv2.waitKey(0)cv2.destroyAllWindows()

4.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.

Xem thêm: Vulgar Là Gì - Nghĩa Của Từ Vulgar

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:

*
Hình 10

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.

*
Hình 11 - Ảnh bởi vì Visem , qua Wikitruyền thông media Commons, đem tự OpenCV.org.

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.

*
Hình 12 - Ảnh Lenna và Richard Feynman được păn năn dần dần.

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:
*
Hình 13 - Hình ảnh nhiễu Gauss.Nhiễu sạn:
*
Hình 14 - Ảnh nhiễu "salt-pepper" trường đoản cú Wikipedia.Nhiễu gồm chu kì:
*
Hình 15 - Ảnh nhiễu bao gồm chu kì trường đoản cú Wikipedia.

Để 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)$.

*
Hình 16 - Tìm khác biệt giữa 2 ảnh (nguồn pysource.com).

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).

*
Hình 17 - Khử font nền cùng với khác hoàn toàn ảnh (nguồn OpenCV.org).

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