久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

使用指針ptr指針訪問像素,并且減少顏色數(shù)量

 Y忍冬草 2016-11-30

      眾所周知對于三通道圖像,,所存儲的顏色個數(shù)太多,,用如此多的顏色來進行處理,可能會對算法性能造成很大的影響,,其實,,只要使用這些顏色中具有代表性的小部分就可以達到同樣的效果。于是一般都會對圖像的顏色進行縮減,。主要的做法是將現(xiàn)有的顏色空間值除以某一個輸入值來減少顏色數(shù)量,。

   主要思路為:

   1、遍歷圖像矩陣的每一個像素,。

   2,、對像素應用縮減的算法,。

  1. <strong>#include<opencv2/core/core.hpp>  
  2. #include<opencv2/highgui/highgui.hpp>  
  3. #include<iostream>  
  4. using namespace std;  
  5. using namespace cv;  
  6.   
  7. void colorReduce(Mat &inputimage, Mat &outputImage, int div);  
  8. int main(){  
  9.     Mat srcimage = imread("C:\\Users\\Administrator\\Desktop\\4.jpg");//讀取的圖片  
  10.     imshow("原始圖像", srcimage);  
  11.     Mat dstimage;  
  12.     dstimage.create(srcimage.rows, srcimage.cols, srcimage.type());  
  13.     double time0 = static_cast<double>(getTickCount());  
  14.     colorReduce(srcimage, dstimage, 64);  
  15.     time0 = ((double)getTickCount() - time0) / getTickFrequency();  
  16.     cout <<time0 << endl;  
  17.     imshow("處理后的圖像", dstimage);  
  18.     waitKey(0);  
  19.   
  20. }  
  21. void colorReduce(Mat &inputimage, Mat &outputImage, int div){  
  22.     outputImage = inputimage.clone();  
  23.     int rowNumber = outputImage.rows;  
  24.     int colNumber = outputImage.cols*outputImage.channels();  
  25.     for (int i = 0; i < rowNumber; i++){  
  26.       
  27.         uchar * data = outputImage.ptr<uchar>(i);  
  28.         for (int j = 0; j < colNumber; j++){  
  29.             data[j] = data[j] / div*div + div / 2;  
  30.         }  
  31.     }  
  32.   
  33.   
  34. }</strong>  

原圖


對圖像縮減64倍

耗時:


縮小16倍

耗時:


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多