OpenCVのwidthstepの使い方は?
OpenCVでは、widthstepは画像データの各行のバイト数を指します。widthstepは以下のように使用できます。
- 画像を読み込んで画像の幅と高さを取得します。
cv::Mat image = cv::imread("image.jpg");
int width = image.cols;
int height = image.rows;
- 各行のバイト数を取得する。
int widthStep = image.step[0];
- 画像の各行を走査する:
for (int i = 0; i < height; i++) {
// 获取当前行的指针
uchar* rowPtr = image.ptr<uchar>(i);
// 遍历当前行的每个像素
for (int j = 0; j < width; j++) {
// 访问图像的像素值
uchar pixel = rowPtr[j];
// 处理图像的像素值
// ...
}
}
上の例では、widthStepは画像の1行のバイト数を取得するために使用され、続いてimage.ptr(i)によって現在の行のポインタを取得します。各行の各ピクセルを反復処理することで、画像のピクセル値にアクセスして処理できます。