Opencv 中圖片像素操作的應用實例——計算圖片某一種顏色區域大小所占比


    對圖片進行處理,其中圖片像素的處理是基本的過程,包括對圖片像素的遍歷,對每一個像素的RGB三個通道的灰度值的獲取等。

以下是基於opencv 的一個應用實例,即計算圖片中黃色區域大小占整個圖片大小的比例。

 1 // computerPercentage.cpp: 定義控制台應用程序的入口點。
 2 //
 3 
 4 #include "stdafx.h"
 5 #include<iostream>
 6 #include<opencv2/opencv.hpp>
 7 #include<iomanip>
 8 
 9 using namespace std;
10 using namespace cv;
11 
12 
13 int main()
14 {
15     Mat image = imread("11.bmp");    //將圖片加載進來
16     int numOfyellow = 0;            //記錄顏色為黃色的像素點
17     float rate;                     //要計算的百分率
18     for (int i = 0; i < image.rows;i++)
19     {
20         for (int j = 0; j <image.cols;j++)   //遍歷圖片的每一個像素點
21         {
22             if((image.at<Vec3b>(i, j)[0] <= 120 && image.at<Vec3b>(i, j)[1] >= 170 && image.at<Vec3b>(i, j)[2] >= 230)
23                 ||(image.at<Vec3b>(i,j)[0]>120&& image.at<Vec3b>(i, j)[0]<=180&&image.at<Vec3b>(i,j)[1]>=180&&
24                     image.at<Vec3b>(i,j)[2]>=220)){//對該像素是否為黃色進行判斷
25                 numOfyellow++;
26             }
27         }
28     }
29     rate = (float)numOfyellow / (float)(image.rows * image.cols);
30     //cout << "圖片中黃色區域占比為:" << fixed << setprecision(2) << rate * 100;
31     printf("The rate:%.2f%%\n", rate * 100);
32     return 0;
33 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM