欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

opencv3/C++圖像像素操作詳解

 更新時間:2019年12月10日 16:37:06   作者:阿卡蒂奧  
今天小編就為大家分享一篇opencv3/C++圖像像素操作詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

RGB圖像轉(zhuǎn)灰度圖

RGB圖像轉(zhuǎn)換為灰度圖時通常使用:

進行轉(zhuǎn)換,以下嘗試通過其他對圖像像素操作的方式將RGB圖像轉(zhuǎn)換為灰度圖像。

#include<opencv2/opencv.hpp>
#include<math.h>
using namespace cv;

int main()
{
 //像素操作
 Mat src,dst;
 src = imread("E:/image/image/daibola.jpg");
 if(src.empty())
 {
  printf("can not load image \n");
  return -1;
 }

 namedWindow("input");
 imshow("input",src);

 dst.create(src.size(), src.type());

 for(int row = 0; row < src.rows; row++)
 {
  for(int col = 0; col < src.cols; col++)
  {
   int b = src.at<Vec3b>(row, col)[0];
   int g = src.at<Vec3b>(row, col)[1];
   int r = src.at<Vec3b>(row, col)[2];
   dst.at<Vec3b>(row, col)[0] = max(r,max(g,b));
   dst.at<Vec3b>(row, col)[1] = max(r,max(g,b));
   dst.at<Vec3b>(row, col)[2] = max(r,max(g,b));

  }
 }

 namedWindow("output");
 imshow("output",dst);
 waitKey();

}

同理使用min(r,min(g,b))可以看到由于選擇了較小的灰度值圖像會明顯變暗:

圖像線性增強

通過對圖像像素操作(線性變換),實現(xiàn)圖像的線性增強。

#include<opencv2/opencv.hpp>
#include<math.h>
using namespace cv;

int main()
{
 Mat src1, dst;
 src1 = imread("E:/image/image/im1.jpg");
 if(src1.empty())
 {
  printf("can not load im1 \n");
  return -1;
 }
 double alpha = 1.2, beta = 50;
 dst = Mat::zeros(src1.size(), src1.type());
 for(int row = 0; row < src1.rows; row++)
 {
  for(int col = 0; col < src1.cols; col++)
  {
   if(src1.channels() == 3)
   {
    int b = src1.at<Vec3b>(row, col)[0]; 
    int g = src1.at<Vec3b>(row, col)[1]; 
    int r = src1.at<Vec3b>(row, col)[2]; 

    dst.at<Vec3b>(row, col)[0] = saturate_cast<uchar>(b*alpha + beta); 
    dst.at<Vec3b>(row, col)[1] = saturate_cast<uchar>(g*alpha + beta); 
    dst.at<Vec3b>(row, col)[2] = saturate_cast<uchar>(r*alpha + beta); 
   }
   else if (src1.channels() == 1)
   {
    float v = src1.at<uchar>(row, col); 
    dst.at<uchar>(row, col) = saturate_cast<uchar>(v*alpha + beta);
   }
  }
 }

 namedWindow("output",CV_WINDOW_AUTOSIZE);
 imshow("output", dst);
 waitKey();
 return 0;
}

掩膜操作調(diào)整圖像對比度

使用一個3×3掩模增強圖像對比度:

#include<opencv2/opencv.hpp>
#include<math.h>
using namespace cv;

int main()
{
 Mat src, dst;
 src = imread("E:/image/image/daibola.jpg");
 CV_Assert(src.depth() == CV_8U);
 if(!src.data)
 {
  printf("can not load image \n");
  return -1;
 }

 src.copyTo(dst);
 for(int row = 1; row<(src.rows - 1); row++)
 {
  const uchar* previous = src.ptr<uchar>(row - 1);
  const uchar* current = src.ptr<uchar>(row);
  const uchar* next = src.ptr<uchar>(row + 1);
  uchar* output = dst.ptr<uchar>(row);
  for(int col = src.channels(); col < (src.cols - 1)*src.channels(); col++)
  {
   *output = saturate_cast<uchar>(9 * current[col] - 2*previous[col] - 2*next[col] - 2*current[col - src.channels()] - 2*current[col + src.channels()]);
   output++;
  }
 }

 namedWindow("image", CV_WINDOW_AUTOSIZE);
 imshow("image",dst);
 waitKey();
 return 0;
}

像素重映射

利用cv::remap實現(xiàn)像素重映射;

cv::remap參數(shù)說明:

Remap(
InputArray src,// 輸入圖像
OutputArray dst,// 輸出圖像
InputArray map1,// 映射表1(CV_32FC1/CV_32FC2)
InputArray map2,// 映射表2(CV_32FC1/CV_32FC2)
int interpolation,// 選擇的插值
int borderMode,// 邊界類型(BORDER_CONSTANT)
const Scalar borderValue// 顏色 
)

插值方法:

CV_INTER_NN =0, 
CV_INTER_LINEAR =1, 
CV_INTER_CUBIC =2, 
CV_INTER_AREA =3, 
CV_INTER_LANCZOS4 =4

通過像素重映射實現(xiàn)圖像垂直翻轉(zhuǎn):

#include<opencv2/opencv.hpp>
using namespace cv;

int main()
{
 Mat src,dst;
 src = imread("E:/image/image/daibola.jpg");
 if(src.empty())
 {
  printf("can not load image \n");
  return -1;
 }
 namedWindow("input", CV_WINDOW_AUTOSIZE);
 imshow("input", src);
 Mat mapx,mapy;
 mapx.create(src.size(), CV_32FC1);
 mapy.create(src.size(), CV_32FC1);
 for(int row = 0; row < src.rows; row++)
 {
  for(int col = 0; col < src.cols; col++)
  {
   mapx.at<float>(row, col) = col;
   mapy.at<float>(row, col) = src.rows - row - 1;
  }
 }
 remap(src, dst, mapx, mapy, CV_INTER_NN, BORDER_CONSTANT, Scalar(0,255,255));

 namedWindow("output", CV_WINDOW_AUTOSIZE);
 imshow("output",dst);
 waitKey();
 return 0;
}

以上這篇opencv3/C++圖像像素操作詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python 類,對象,數(shù)據(jù)分類,函數(shù)參數(shù)傳遞詳解

    Python 類,對象,數(shù)據(jù)分類,函數(shù)參數(shù)傳遞詳解

    這篇文章主要介紹了深入理解Python 類,對象,數(shù)據(jù)分類,函數(shù)參數(shù)傳遞,涉及具體代碼示例,具有一定參考價值,需要的朋友可以了解下。
    2021-09-09
  • python變量類型、輸入、輸出運算符介紹舉例

    python變量類型、輸入、輸出運算符介紹舉例

    Python是一種功能強大的編程語言,支持多種數(shù)據(jù)類型和運算符,它強調(diào)代碼的可讀性和簡潔性,變量在Python中是動態(tài)類型的,不需要顯式聲明類型,這篇文章主要介紹了python變量類型、輸入、輸出運算符的相關(guān)資料,需要的朋友可以參考下
    2024-11-11
  • Python使用Pexpect庫實現(xiàn)自動化與終端交互的任務

    Python使用Pexpect庫實現(xiàn)自動化與終端交互的任務

    Pexpect 是一個 Python 庫,用于自動化與終端交互的任務,它提供了一種簡單的方式來編寫腳本,以便與終端程序進行交互,下面我們就來深入了解一下Pexpect庫的具體使用吧
    2023-12-12
  • Python中迭代器的創(chuàng)建與使用詳解

    Python中迭代器的創(chuàng)建與使用詳解

    Python中的迭代器是一個對象,用于迭代可迭代對象,如列表,元組,字典和集合,這篇文章主要為大家介紹了Python中迭代器的創(chuàng)建與使用,需要的可以參考下
    2023-08-08
  • Python異常處理機制結(jié)構(gòu)實例解析

    Python異常處理機制結(jié)構(gòu)實例解析

    這篇文章主要介紹了Python異常處理機制結(jié)構(gòu)實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • Python pandas入門系列之眾數(shù)和分位數(shù)

    Python pandas入門系列之眾數(shù)和分位數(shù)

    分位數(shù)(Quantile),也稱分位點,是指將一個隨機變量的概率分布范圍分為幾個等份的數(shù)值點,分析其數(shù)據(jù)變量的趨勢,而眾數(shù)(Mode)是代表數(shù)據(jù)的一般水平,這篇文章主要給大家介紹了Python pandas系列之眾數(shù)和分位數(shù)的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • python正則表達式中匹配次數(shù)與貪心問題詳解(+??*)

    python正則表達式中匹配次數(shù)與貪心問題詳解(+??*)

    正則表達式是一個特殊的字符序列,它能幫助你方便的檢查一個字符串是否與某種模式匹配,下面這篇文章主要給大家介紹了關(guān)于python正則表達式中匹配次數(shù)與貪心問題(+??*)的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • Python重寫父類的三種方法小結(jié)

    Python重寫父類的三種方法小結(jié)

    本文主要介紹了Python重寫父類的三種方法小結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • python3中關(guān)于excel追加寫入格式被覆蓋問題(實例代碼)

    python3中關(guān)于excel追加寫入格式被覆蓋問題(實例代碼)

    這篇文章主要介紹了python3中關(guān)于excel追加寫入格式被覆蓋問題,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • Python配置pip國內(nèi)鏡像源的實現(xiàn)

    Python配置pip國內(nèi)鏡像源的實現(xiàn)

    這篇文章主要介紹了Python配置pip國內(nèi)鏡像源的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08

最新評論