cv::Mat での各要素へのアクセス方法 [OpenCV]
CV_GRAY2BGR 形式のcv::Mat データの各要素へのアクセス方法。
画像の最大、最小、平均輝度を求める方法
px->data.max = 0;
px->data.min = 0xffff;
px->data.ave = 0;
px->data.count = 0;uint64_t total = 0;
for (int y = 0; y < roi->rows; ++y){
for (int x = 0; x < roi->cols; ++x) {
for (int c=0; c<roi->channels(); c++) {
unsigned short B = roi->at<cv::Vec3s>(y, x)[0];
unsigned short G = roi->at<cv::Vec3s>(y, x)[1];
unsigned short R = roi->at<cv::Vec3s>(y, x)[2];
unsigned int pixelData = B + G + R;if (pixelData > px->data.max) px->data.max = pixelData;
if (pixelData < px->data.min) px->data.min = pixelData;
total += pixelData;
px->data.count++;
}
}
}
px->data.ave = (unsigned int)(total / px->data.count);
参考サイト
- http://minus9d.hatenablog.com/entry/20130126/1359194404
- http://d.hatena.ne.jp/takmin/20100816/1281957306