最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++使用opencv讀取圖片的操作代碼(圖像處理)

 更新時間:2022年04月24日 11:15:46   作者:努力的袁  
這篇文章主要介紹了C++使用opencv讀取圖片,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

代碼理解

using namespace cv;

解釋:加入此代碼,后面就不需要在函數前加入cv:: 如從cv::imread(),可以直接寫成imread()

int main(int argc, char** argv)    
{ 
	return 0;
}

解釋:

// argc是命令行,總的參數個數; argv[]是argc個參數,其中第0個參數是程序的全名,以后的參數命令行后面跟的用戶輸入的參數
// char *argv[]  用來取得你所輸入的參數
// main(int argc, char **argv)和main(int  argc, char *argv[])一個意思
// int argc是輸入在命令行上的參數(字符串)個數;
// *argv[]是指向字符串的指針數組,即數組元素是指向輸入在命令行上的每個參數(字符串)的指針。
image = imread("./1.jpg");  

解釋:讀取圖片,其路徑為相對路徑,圖片放在與.cpp相同路徑下

imshow("meinv", image);
waitKey(0);

解釋: 顯示圖片,加入waitKey(0)是防止圖片出現之后馬上自動消失。

for (size_t y = 0; y < image.rows; y++)
{
	return 0;
}

解釋:size_t是一種數據相關的無符號類型,它被設計得足夠大以便能夠存儲內存中對象的大小。

unsigned char* row_ptr = image.ptr<unsigned char>(y);

解釋:

獲取行指針,之所以用char的原因是因為顏色值是1-256用char能放得下
ptr是pointer的縮寫,是一個特殊的變量,它里面存儲的數值被解釋為內存里的一個地址。

全部代碼

#include<iostream>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main(int argc, char** argv)    
{                                  
	Mat image;
	image = imread("./1.jpg");
	if (image.data == nullptr)                     //nullptr是c++11新出現的空指針常量
	{
		cout << "圖片文件不存在" << endl;
	}
	else
		//顯示圖片
		imshow("meinv", image);
		waitKey(0);
	// 輸出圖片的基本信息
	cout << "圖像寬為:" << image.cols << "\t高度為:" << image.rows << "\t通道數為:" << image.channels() << endl;
	// 遍歷每個像素
	//之所以用y這個名字表示行 是因為圖片的坐標系中行號就是y
	for (size_t y = 0; y < image.rows; y++)
		unsigned char* row_ptr = image.ptr<unsigned char>(y);
		for (size_t x = 0; x < image.cols; ++x) {
			//這是獲得像素數據數組的頭指針,注意像素數據可能會有多個通道所以才需要用數組存儲
			unsigned char* data_ptr = &row_ptr[x * image.channels()];
			//對當前像素逐個通道輸出顏色值
			for (int i = 0; i < image.channels(); ++i) {
				cout << int(data_ptr[i])<<endl;
			}
		}
	system("pause");
	return 0;
}

讀取結果

參考

https://www.w3cschool.cn/opencv/opencv-a4gp2cfi.html

到此這篇關于C++使用opencv讀取圖片的文章就介紹到這了,更多相關c++ opencv讀取圖片內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C++中的構造函數與析造函數詳解

    C++中的構造函數與析造函數詳解

    這篇文章主要介紹了C++中的構造函數與析造函數詳解的相關資料,需要的朋友可以參考下
    2017-06-06
  • 淺談C++ 虛函數

    淺談C++ 虛函數

    這篇文章主要介紹了C++ 虛函數的相關資料,幫助大家更好的理解和學習c++,感興趣的朋友可以了解下
    2020-09-09
  • 詳解C++中的增量運算符++和減量運算符--的用法

    詳解C++中的增量運算符++和減量運算符--的用法

    這篇文章主要介紹了C++中的增量運算符++和減量運算符--的用法,分為前綴情況和后綴情況來講,需要的朋友可以參考下
    2016-01-01
  • C語言新手入門速通手冊

    C語言新手入門速通手冊

    C 語言是一種通用的、面向過程式的計算機程序設計語言。1972 年,為了移植與開發(fā) UNIX 操作系統,丹尼斯·里奇在貝爾電話實驗室設計開發(fā)了 C 語言。C 語言是一種廣泛使用的計算機語言,它與 Java 編程語言一樣普及,二者在現代軟件程序員之間都得到廣泛使用
    2022-04-04
  • Dev C++ 安裝及使用方法(圖文教程)

    Dev C++ 安裝及使用方法(圖文教程)

    Dev C++ 是一款非常好用,簡約的C/C++開發(fā)工具,本文主要介紹了Dev C++ 安裝及使用方法(圖文教程),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • 從頭學習C語言之二維數組

    從頭學習C語言之二維數組

    這篇文章主要為大家詳細介紹了C語言之二維數組,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • 主流操作系統平臺的宏定義

    主流操作系統平臺的宏定義

    這篇文章主要介紹了主流操作系統平臺的宏定義,最近正在學習C++程序從Windows 平臺向Unix 平臺移植,參考了 qt 的宏定義文件,需要的朋友可以參考下
    2014-02-02
  • C++算法學習之貪心算法的應用

    C++算法學習之貪心算法的應用

    貪心算法是指,在對問題求解時,總是做出在當前看來是最好的選擇。本文為大家準備了幾個示例,從而能深入了解貪心算法的應用,需要的可以參考一下
    2022-05-05
  • C++使用MFC獲取PC硬件配置信息

    C++使用MFC獲取PC硬件配置信息

    這篇文章主要為大家詳細介紹了C++使用MFC獲取PC硬件配置信息,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • C語言 深入解讀數據結構之堆的實現

    C語言 深入解讀數據結構之堆的實現

    堆就是用數組實現的二叉樹,所以它沒有使用父指針或者子指針。堆根據“堆屬性”來排序,“堆屬性”決定了樹中節(jié)點的位置
    2021-11-11

最新評論

库尔勒市| 图木舒克市| 三明市| 扶绥县| 麻江县| 克拉玛依市| 东海县| 江西省| 大关县| 开远市| 曲阜市| 防城港市| 井冈山市| 高陵县| 砀山县| 正安县| 邻水| 萨迦县| 绥滨县| 静宁县| 抚松县| 休宁县| 车致| 若尔盖县| 正宁县| 武功县| 五莲县| 沂水县| 手游| 美姑县| 普兰店市| 西和县| 陆丰市| 台东县| 彩票| 阳山县| 纳雍县| 海城市| 治多县| 库车县| 崇左市|