1. 程式人生 > >opencv 通過指標訪問影象畫素值,輸出為空的問題

opencv 通過指標訪問影象畫素值,輸出為空的問題

for (int i = 0; i < img_roi_gray_at.rows; ++i)
        {
            uchar* datatemp = img_roi_gray_at.ptr<uchar>(i);
            for (int j = 0; j < img_roi_gray_at.cols; ++j)
            {
                //cout << (int)datatemp[j] << endl;
                cout << datatemp[j] << endl;
            }
        }

如程式碼所示,此時輸出為空,按道理說應該輸出具體的畫素值才對

下面的程式碼是經過大神修改後的,問題出在輸出的時候把畫素值當成字元型來輸出了,因此需進行型別轉換,轉換成int型輸出,即可得到正確結果。

for (int i = 0; i < img_roi_gray_at.rows; ++i)
        {
            uchar* datatemp = img_roi_gray_at.ptr<uchar>(i);
            for (int j = 0; j < img_roi_gray_at.cols; ++j)
            {
                cout << (int
)datatemp[j] << endl; //cout << datatemp[j] << endl; } }

相關推薦

opencv 通過指標訪問影象輸出的問題

for (int i = 0; i < img_roi_gray_at.rows; ++i) { uchar* datatemp = img_roi_gray_at.ptr<uchar>(i);

OpenCV訪問影象並修改--IplImage

1.IplImage的結構: typedef struct _IplImage { int nSize; /* IplImage大小 */

opencv讀取影象讀取並儲存到txt檔案(二)灰度圖

#include "stdafx.h" #include"cv.h" #include <stdlib.h> #include <stdio.h> #include <math.h> #include <fstream> #include &l

opencv讀取影象讀取並儲存到txt檔案(一)RGB

#include “stdafx.h” #include"cv.h" #include <stdlib.h> #include <stdio.h> #include <math.h> #include #include #include “iost

openCV--訪問影象的三個方法

方法一       指標訪問:C操作符[ ] 方法二       迭代器iterater 方法三        動態地址計算 訪問速度上,debug模式下 ,方法一 > 方法二 > 方法

opencv訪問影象

訪問畫素的三種方法 ①指標訪問:最快 ②迭代器iterator:較慢,非常安全,指標訪問可能出現越界問題 ③動態地址計算:更慢,通過at()實現。適用於訪問具體某個第i行,j列的畫素,而不適用遍歷畫素 Mat在記憶體中儲存形式   灰度圖的儲存形式        RGB的儲存形式    一般情況下,Mat

opencv訪問影象的 三種方法

訪問畫素的三種方法 ①指標訪問:最快 ②迭代器iterator:較慢,非常安全,指標訪問可能出現越界問題 ③動態地址計算:更慢,通過at()實現。適用於訪問具體某個第i行,j列的畫素,而不適用遍歷畫素 Mat在記憶體中儲存形式   灰度圖的儲存形式        RGB的儲存形式    一般情況下,M

opencv訪問影象

(1) 假設你要訪問第k通道、第i行、第j列的畫素。 (2) 間接訪問: (通用,但效率低,可訪問任意格式的影象) 對於單通道位元組型影象: IplImage* img=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1); CvSc

opencv影象讀取

說到影象畫素,肯定要先認識一下影象中的座標系長什麼樣。 1. 座標體系中的零點座標為圖片的左上角,X軸為影象矩形的上面那條水平線;Y軸為影象矩形左邊的那條垂直線。該座標體系在諸如結構體Mat,Rect,

OpenCV--讀取影象中任意點的並顯示座標

需求:在滑鼠左鍵按下時,顯示該位置的畫素值和座標。 在vs2010下新建了Win32控制檯專案,在此只處理灰度影象,顯示的畫素值為灰度值 #include "iostream"

關於opencv的Mat型別的imwrite()函式寫入.jpg影象會改變的解決方案

 #include <string> #include <opencv2/opencv.hpp> #include <opencv2/imgproc/imgproc.hpp> using namespace std; using na

OpenCV中讀取影象

OpenCV中用於讀取影象畫素點的值的方法很多,這裡主要提供了兩種常用的方法。 方法一 利用IplImage資料型別的imageData定位資料緩衝區來實現,imageData包含指向影象第一個畫素資料的指標 例: If( imgSource != 0 )//imgSource為IplImage* { fo

opencv對於bmp影象的讀取和賦

#include <stdio.h> #include <cv.h> #include <highgui.h> void main(){     IplImage *img=cvLoadImage("c://fruitfs.bmp",1

訪問影象幾種方法

#include <iostream> #include <opencv2/opencv.hpp> #include <Windows.h> #include <opencv2/highgui/highgui.hpp> using namespace

OpenCV---如何將翻轉輸出(3)

附程式碼如下: import cv2 as cv import numpy as np def q(): src = cv.imread("D:/matplotlib/0.jpg") h,w,ch = np.shape(src) print(h,w,ch) for

【Python+OpenCV】圖片區域性區域處理(改進版)-一種特徵提取方法

上一個版本看這裡:《Python+OpenCV實現【圖片】區域性區域畫素值處理》 上個版本的程式碼雖然實現了我需要的功能,但還是走了很多彎路,我意識到圖片本就是陣列形式,對於8位灰度圖,通道數為1,它

【Python+OpenCV】視訊流區域性區域處理-一種特徵提取方法

開發環境:Python3.6.0 + OpenCV3.2.0 任務目標:攝像頭採集影象(例如:480*640),並對視訊流每一幀(灰度圖)特定矩形區域(480*30)畫素值進行行求和,得到一個48

OpenCV計算機視覺之訪問

#include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgpro

OpenCV影象操作

二值化影象畫素不是0就是255,資料型別為uchar。所以訪問方法是: // 這裡inputmat是二值化影象的mat inputmat.at<uchar>(y, x); 判斷是否為白色的方法: if (inputmat.at<uchar&g

opencv修改影象

本節知識點 1,讀寫影象 a,imread可以載入灰度圖或者RGB影象 b,imwrite儲存影象,型別由副檔名決定 2,讀寫影象的畫素 a,讀取灰度影象畫素點的值(CV_8UC1) Scalar i