Mat toGray(Mat img,Mat *gray_image) {
Mat Origin_img = img;
Mat gray_img = Mat(Origin_img.size(), CV_8UC1, Scalar(0));
//利用迭代器遍历Image
Mat_<Vec3b>::iterator Oribegin=Origin_img.begin<Vec3b>();
Mat_<Vec3b>::iterator Oriend=Origin_img.end<Vec3b>();
Mat_<uchar>::iterator Grybegin = gray_img.begin<uchar>();
Mat_<uchar>::iterator Gryend = gray_img.end<uchar>();
while (Oribegin != Oriend) {
uchar b = (*Oribegin)[0];
uchar g = (*Oribegin)[1];
uchar r = (*Oribegin)[2];
*Grybegin = (299 * b + 587 * g + 114 * r) / 1000;//灰度图转换原理
Grybegin++;
Oribegin++;
}
//*gray_image = gray_img.clone();未实现Mat Copy
return gray_img;
}
C++自定义函数实现灰度图转化
最新推荐文章于 2023-01-30 16:26:18 发布