Giới thiệu và cụ thể các thuật toán Grayscale, hình ảnh nhị phân và một vài thuật toán giúp biến hóa một ảnh xám thành ảnh nhị phân (Adaptive threshold).

Bạn đang xem: Mức xám của ảnh là gì


Giới thiệu

OpenCV (Open Computer Vision) là một thư viện mã mối cung cấp mở chuyên dùng làm xử lý những vấn đề liên quan đến thị giác sản phẩm công nghệ tính. Nhờ vào 1 khối hệ thống các giải mã chuyên biệt, về tối ưu cho vấn đề xử lý thị giác máy tính, vị vậy tính ứng dụng của OpenCV là hết sức lớn.Xử lý hình ảnh là quy trình xử lý, thao tác hình hình ảnh để có 1 hình hình ảnh khác tương xứng với nhu yếu của fan dùng, ...


Bài viết ra mắt khái niệm cùng kỹ thuật ảnh xám (Grayscale) và ảnh nhị phân cùng nhị phân hóa (Adaptive Threshold).

GrayScale là gì?

Là 1 khối hệ thống màu cómô hình màu dễ dàng và đơn giản nhất cùng với 256 cấp độ xám đổi thay thiên từ màu sắc đenđến color trắng.Kết trái được xuất ra vẫn có màu trắng đen.Đượcsử dụng cả trong công nghiệp in lẫn cần sử dụng trong vấn đề thể hiện ảnh lên những thiết bị số.Ảnh xám (Gray image)hay nói một cách khác là hình ảnh đơn sắc (Monochromatic), mỗi giá trị điểm ảnh (Pixel) trong ma trận điểm ảnh mang giá trị từ 0 mang đến 255.Trong không gian màu RGB, để có 1 ảnh xám cần có phải có mức giá trị kênh màu sắc Red(x, y) = Green(x, y) = Blue(x, y) (với x, y theo thứ tự là tọa độ của điểm ảnh).
*

Chuyển đổi hệ thống màuRGB quý phái Grayscale

Ảnh là tập hợp của một ma trận điểm hình ảnh (pixel), từng điểm ảnh có thể được biểu diễn bằng n bytes dưới các kênh màu khác nhau. Việc biến đổi giữa những hệ màu thông thường được thực hiện thông qua các phép đổi khác ma trận.

Bài viết sẽ reviews cách biến đổi từ hình ảnh 24 bits RGB sang ảnh 8 bits Grayscale.

Công thức

Công thức tính cường độ sáng tại một điểm hình ảnh từ hình ảnh RGB:

I(x, y) = 0.3086 * Red(x, y) + 0.6094 * Green(x, y) + 0.0820 * Blue(x, y)I(x, y) = 0.299 * Red(x, y) + 0.587 * Green(x, y) + 0.114 * Blue(x, y)

Hoặc

I(x, y) = ( 2 * Red(x, y) + 5 * Green(x, y) + 1 * Blue(x, y) ) / 8

Phân tích

I(x, y): cường độ sáng tại điểm ảnh (x, y) của hình ảnh xám.Red(x, y): quý giá của kênh màu Red (Đỏ) trên điểm hình ảnh (x, y) của hình ảnh màu (RGB).Green(x, y): quý hiếm của kênh màu Green (Xanh lá cây) tại điểm ảnh (x, y) của ảnh màu (RGB).Blue(x, y): giá trị của kênh màu blue (Xanh lơ) tại điểm ảnh (x, y) của ảnh màu (RGB).

Chú ý


Các phép toán trong các nguyên (Int)nhanh hơn rất nhiều trong số thực(Float).Trong OpenCV, khối hệ thống màu tất cả thứ tự những kênh màu là Blue-Green-Red.Các thông số kỹ thuật dùng để đo lường và thống kê cường độ sáng cho ảnh xám như: 0.3086, 0.6094, 0.0820,... được xem là những số lượng đẹp do fan ta nghiên cứu ra. Những con số này rất có thể thay đổi. Tất cả thể lựa chọn 1 giá trị 1 kênh color hoặc chia trung bình cộng của 3 kênh màu để tìm cường độ sáng ở 1 điểm hình ảnh (Pixel).

Chuyển đổi hình ảnh xám trong OpenCV

Phương thức cvtColor

Trong OpenCV, để gửi 1 tấm hình ảnh có hệ color RGB sang trọng Grayscale, hay thậm chí còn là các không gian màu tương hỗ với nhau nhờ cách làm cvtColor()(Convert color).

cv::cvtColor(cv::InputArray src, cv::OutputArray dst, int code)

Phân tích

src: Là hình hình ảnh gốc (Trong nội dung bài viết này là ảnh màu).dst: Là hình ảnh thu được (Trong bài viết này là hình ảnh xám).code: Là mã gửi màu. Ví dụ: code = CV_BGR2GRAY là gửi đổi ảnh màu thành ảnh xám,...Code minh hoạ thủ tục cvtColor vào OpenCV// www.stdio.vn// www.stdio.vn/users/index/11/truong-dat#include #include "opencv2/core/core.hpp"#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"using namespace cv;int main()// Read imageMat image = imread("stdio.png", CV_LOAD_IMAGE_COLOR);Mat imageGrayscale;// check for validif (!image.data)printf("Could not xuất hiện or find the image ");return -1;cvtColor(image, imageGrayscale, CV_BGR2GRAY);// Create and show image in windowimshow("STDIO OpenCV Sample", imageGrayscale);// Wait input and exitwaitKey(0);return 0;
*

Ảnh nhị phân

Là ảnh mà giá chỉ trị của các điểm ảnh chỉ được màn trình diễn bằng hai quý giá là 0 (Đen) với 255 (Trắng) (Tương ứng cùng với 0 với 1, mà lại để nguyên quý giá 0 và 255 để rất có thể hiểu hơn trong câu hỏi tính toán).Vì cực hiếm của điểm ảnh được màn trình diễn bởi 2 quý giá là 0 hoặc 1, cần 1 điểm ảnh được trình diễn bằng 1 bit nên hình ảnh có kích cỡ rất nhỏ.

Nhị phân hóa

Là vượt trình biến đổi 1 ảnh xám thành ảnh nhị phân.

Gọi quý hiếm cường độ sáng ở một điểm ảnh là I(x,y).INP(x,y) là cường ánh sáng của điểm ảnh trên hình ảnh nhị phân .(Với0

Để vươn lên là đổi hình ảnh xám thành hình ảnh nhị phân. So sánh giá trị cường ánh sáng của điểm ảnh với 1 ngưỡng nhị phân T.

Nếu I(x,y) > T thì INP(x, y) = 0 (0).Nếu I(x,y) > T thì INP(x, y) = 255 (1).

Chú ý

Có thể lựa chọn giá trị T từ 0 cho 255, nhưng thường thì nhiều bạn hay lựa chọn 1 giá trị sẽ là 128 có nghĩa là giá trị mức độ vừa phải của max(255) cùng min(0) của cường ánh sáng (Intensity) của điểm ảnh.Dễ dàng nhận biết với mỗi T thì bao gồm 1 ảnh nhị phân khác nhau (Khác nhau ở đây là cường độ sáng của các tấm hình ảnh nhị phân với mỗi quý giá T).

Có 1 kỹ thuật hotline là nhị phân hóa ngưỡng hễ giúp thu được ảnh nhị phân mà lại không ân cần tới độ mạnh sáng.

Nhị phân hóa trong OpenCVPhương thức threshold

Để gửi 1 ảnh thành 1 ảnh nhị phân, sử dụng phương thức threshold().

threshold(cv::InputArray src, cv::OutputArray dst, double thresh, double maxval, int type);

Phân tích


src: hình ảnh gốc (Trong bài viết này là hình ảnh màu).dst: ảnh thu được (Trong nội dung bài viết này là ảnh nhị phân).thresh: ngưỡng nhị phân T.maxval: giá chỉ trị lớn số 1 trong hình ảnh (maxval = 255 đối với hình ảnh xám).type: loại nhị phân.Code minh hoạ cách tiến hành threshold trong OpenCV// www.stdio.vn// www.stdio.vn/users/index/11/truong-dat#include #include "opencv2/core/core.hpp"#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"using namespace cv;int main()// Read imageMat image = imread("stdio.png", CV_LOAD_IMAGE_GRAYSCALE);Mat imageBinary;// kiểm tra for validif (!image.data)printf("Could not xuất hiện or find the image ");return -1;threshold(image, imageBinary, 220, 255, CV_THRESH_BINARY);// Create and show image in windowimshow("STDIO OpenCV Sample", imageBinary);// Wait input và exitwaitKey(0);return 0;
*

Nhị phân hóa ngưỡng động

Ý tưởng:

Chia hình ảnh thành những khu vực, cửa sổ khác biệt (Region).Dùng 1 thuật toán để tìm 1 quý giá T phù hợp với từng khu vực vực, hành lang cửa số (Region).Áp dụng cách thức nhị phân hóa đến từng khu vực, hành lang cửa số (Region) với T phù hợp.

Điều quan trọng trong nghệ thuật này là đề xuất tìm 1 quý hiếm T phù hợp với từng quần thể vực, hành lang cửa số (Region) hoặc cả tấm ảnh. Tất cả rất nhiều phương thức để tra cứu T, làm việc nội dung tiếp theo sau sẽ ra mắt 1 số thuật toán góp tìm kiếm quý giá T này.

Thuật toán Otsu

Bước 1:Xác định T1. Giá trị mang đến T1ban đầu nên chọn là (0+255) / 2 = 128.

Bước 2:Phân loại thành 2 nhóm điểm ảnh.

Loại 1 (Type1): chứa toàn bộ các điểm ảnh có cực hiếm cường ánh sáng (Intensity) một số loại 2 (Type2): chứa tất cả các điểm ảnh có giá trị cường ánh sáng (Intensity) > T.

Bước 3:Tính cực hiếm cường ánh sáng trung bình (iAverage) mang đến Type1 (iAverage1) và Type2 (iAverage2).

Bước 4:Tính quý giá T2 theo bí quyết (iAverage1 + iAverage2) /2.

Bước 5:So sánh T1 với T2.

Nếu quý giá chênh lệch của T1 với T2 Nếu quý hiếm chênh lệch của T1 và T2 > Deltathì quay trở về Bước 1.

Xem thêm: Tiểu Sử Ông Huỳnh Quang Hải Phụ Trách Nhiều Lĩnh Vực "Khủng" Tại Bộ Tài Chính


*

Thuật toán đối xứng

Bước 1: khởi chế tác mảng Histogram(histogram). Tìm quý hiếm cường khả năng chiếu sáng (intensityMax) tất cả tuần suất xuất hiện nhiều độc nhất histogram.


Bước 2: duyệt cục bộ các mức xám sút từ 255 mang đến intensityMax. Trường hợp tại nút xám nào bao gồm tuầnsuất xuất hiện trên hình ảnh là 5% thì ngừng lại. Lấy quý hiếm đối xứng qua histogram là ngưỡng cồn T.

for (int indexIntensity = 255; indexIntensity >= intensityMax; indexIntensity--)frequency = histogram;if ((float)frequency / (image.Width * image.Height) == 0.05f) split = indexInteensity;break;T = intensityMax - (split - intensityMax);
*

Thuật toán tam giác

Bước 1: Khởi sinh sản mảng Histogram(histogram).

Tìm quý giá intensityMax vàhistogram.Tìm giá bán trịintensityMinvàhistogram.

Bước 2: Duyệt toàn cục các mức xám tự intensityMinđến intensityMax. Tính khoảng cách tương ứng sau đó xét ngưỡng Tbằng cực hiếm mức xám có khoảng cách lớn nhất.

for(int index = intensityMin+1; index a và b: theo lần lượt là 2 điểm khác biệt trên đường thẳng.c: là điểm cần tìm khoảng cách tới mặt đường thẳng.
Nhị phân hóa ngưỡng độngtrong OpenCVPhương thức adaptiveThreshold

Để gửi 1 hình ảnh thành 1 hình ảnh nhị phân, thực hiện phương thức adaptiveThreshold()

adaptiveThreshold(cv::InputArray src, cv::OutputArray dst, double maxValue,int adaptiveMethod, int thresholdType, int blockSize, double C);

Phân tích

src: hình ảnh gốc (Trong nội dung bài viết này là ảnh màu).dst: ảnh thu được (Trong nội dung bài viết này là hình ảnh nhị phân).thresh: ngưỡng nhị phân T.maxValue: giá trị lớn số 1 trong ảnh (maxval = 255 đối với ảnh xám).adaptiveMethod: cách thức nhị phân cùng với ngưỡng động, nó chính là cách tính giá trị ngưỡng nhị phân vào từng vùng bắt buộc nhị phân.thresholdType: thứ hạng nhị phân.blockSize: kích thước của cửa sổ (Region) áp dụng cho việc đo lường ngưỡng đụng (nên chọn các giá trị %3 = 0 || %5 = 0 || %7 = 0).C: thông số để bù trừ trong trường hợp hình ảnh có độ tương phản bội quá lớn.Code minh hoạ cách làm adaptiveThreshold trong OpenCV#include #include "opencv2/core/core.hpp"#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"using namespace cv;int main()// Read imageMat image = imread("stdio.png", CV_LOAD_IMAGE_GRAYSCALE);Mat imageBinary;// kiểm tra for validif (!image.data)printf("Could not open or find the image ");return -1;adaptiveThreshold(image, imageBinary, 255, CV_ADAPTIVE_THRESH_MEAN_C,CV_THRESH_BINARY, 9, 0);// Create & show image in windowimshow("STDIO OpenCV Sample", imageBinary);// Wait input and exitwaitKey(0);return 0;

Computer Vision

Thị giác vật dụng tính.


*
Reply
*
2
*
0
*
phân chia sẻ

Room Inventory là gì

Cùng là 1 trong những động tự Lie, tuy thế khi bạn kết hợp động từ này với những giới từ khác nhau thì lại mang chân thành và ý nghĩa khác nhau. Hôm nay, Studytienganh sẽ với ...


Quyền hạn tính năng là gì

Quyền hạn (tiếng Anh: Authority) trong tổ chức triển khai là quyền tự chủ trong hành động, trong quá trình quyết định và đòi hỏi sự vâng lệnh quyết định nối sát ...


Decide danh tự là gì

Decide đi với giới từ bỏ gì? giải pháp dùng decide là thắc mắc của đa số bạn học tập tiếng Anh. Để đọc hơn về ý nghĩa, ngữ pháp cũng giống như cách sử dụng Decide ...


Hỏi ĐápLà gì
Mom sông tức là gì

Phân tích bài xích thơ Thương bà xã của Tú xương (bài 2). ...


Hỏi ĐápLà gìNgôn ngữNghĩa là gì
Vì sao thực thiết bị được xem như là sinh đồ gia dụng sản xuất

Sinh vật dụng tiêu thụ là loại rất không còn xa lạ trong cuộc sống đời thường của chúng ta. Chúng là đa số sinh đồ vật đóng vai trò vô cùng quan trọng. Chủ yếu là vào việc gia hạn sự ...


Bookworm tức thị gì

Bookworm Là Gì Nghĩa Của từ bỏ Bookworm Trong giờ Việt Là Gì 1 tháng Tám, 2021 Là ...


Độ trượt của bánh xe cộ là gì
Cơ thể con người dân có bao nhiêu cỗ phận

Cơ thể bạn là trong những điều mà tạo hóa trao khuyến mãi cho mỗi bọn chúng ta, từng một bộ phận đều gồm trong mình thiên chức của nó. Gọi về các bộ phận ...


Cuba giờ đồng hồ Anh là gì

Các ai đang học tiếng Anh cùng yêu địa lý chắc hẳn rằng sẽ tò mò phiên âm giờ Anh tên các nước trên cố gắng giới. Bài toán học giờ Anh qua hồ hết từ vựng giờ đồng hồ ...


Công suất 600W là gì

10 thắc mắc trước khi mua cục đẩy năng suất mà bạn nên biếtĐã có 9546 lượt coi sản phẩmCục đẩy công suất dù sẽ được du nhập vào nước ta được ...


Máy rửa phương diện Foreo Luna 3 cung ứng ở đâu

Máy rửa phương diện Foreo Luna 3 là một model máy rửa mặt full size cá biệt trong những dòng sản phẩm rửa phương diện của Foreo được chị em mến mộ ngoài những mẫu mini nhỏ ...


Hỏi ĐápỞ đâuCông NghệMáy
Doris có nghĩa là gì

100+ thương hiệu tiếng Anh cho nhỏ bé gái hay & nhiều ý nghĩa sâu sắc đẹp ...


Hỏi ĐápLà gìNgôn ngữNghĩa là gì
Lỗi lấn làn phân phát bao nhiêu

Khi gia nhập giao thông đường đi bộ có lẽ các bạn không còn không quen gì với vạch kẻ đường dành riêng cho các phương tiện khác nhau. Tuy nhiên hiện thời tình trạng ...


Tại sao khí co hẹp độc

Chuyên về y học, giành riêng cho các chưng sỹ, dược sỹ, học tập viên với sinh viên từ bỏ đăng nội dung bài viết về sức khỏe, dàn xếp nội cỗ nhằm nâng cao kiến thức giao hàng ...


Iphone Full cn là gì

iPhone lock là iPhone được đẩy ra kèm đúng theo đồng ở trong nhà mạng nên chỉ có thể dùng được sim ở trong nhà mạng đó. Để soát sổ đượciPhonelock giỏi quốc tế không phải ...


Kinh tuyến Tây ngơi nghỉ đâu

trình bày các khái niệm về kinh tuyến đường kinh tuyến cội kinh đường đông kinh đường tây vĩ đường vĩ tuyến gốc vĩ đường bắc vĩ con đường nam chào bán cầu bắc chào bán cầu ...


B1 tương đương bao nhiêu IELTS

1. Mày mò bằng giờ đồng hồ Anh b1 tương tự ielts bao nhiêu? 1.1. Chúng ta biết gì về trình độ chuyên môn tiếng Anh B1? trình độ tiếng Anh B1 là chuyên môn tiếng Anh thuộc ...


Cầm đèn chạy trước ô tô tiếng Anh là gì

Giải say đắm thành ngữ thay đèn chạy trước ô tô có nghĩa là gì? không ít người thắc mắc lý giải thành ngữ vắt đèn chạy ...


Thiền quán trọng tâm là gì

Tứ Niệm Xứ (Pali; Skt: smṛtyupasthāna) là 1 thuật ngữ Phật giáo quan lại trọng, có nghĩa là sự thiết lập, desgin chánh niệm thức giấc giác hay chánh niệm hiện nay ...


Thế làm sao là tiệm tính
Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *