栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Java绑定中循环遍历OpenCV Mat

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Java绑定中循环遍历OpenCV Mat

如果

Mat
确实是 灰色 ,则可能是以下类型
CV_8U

for (int i = 0; i < gray.rows; i++){    for (int j = 0; j < gray.cols; j++)    {        byte pixel = gray.get(i, j);    }}

我没有设置环境来测试此代码。有关更多信息,请检查此线程。

如果您使用的是 JavaCV ,前段时间,我编写了一个代码来对彩色图像的像素进行迭代,然后将其转换为灰度,如下所示:

    IplImage imageSrc = cvLoadImage("pipeline.png", CV_LOAD_IMAGE_COLOR);    if (imageSrc == null)     {        System.out.println("!!! Failed loading image");        return;    }    double r, g, b;    r = g = b = 0.0;    IplImage imageDst = IplImage.create(imageSrc.width(), imageSrc.height(), IPL_DEPTH_8U, 3);    CvMat imagePixels = CvMat.createHeader(imageDst.height(), imageDst.width(), CV_32FC1);      cvGetMat(imageDst, imagePixels, null, 0);     int x, y;    for(y=0; y<imageSrc.height(); y++)       for(x=0; x<imageSrc.width(); x++)       { CvScalar rgb = cvGet2D(imagePixels, y, x); r = rgb.val(0); g = rgb.val(2); b = rgb.val(1); double gray = (r + g + b) / 3; CvScalar scalar = new CvScalar(); scalar.setVal(0, gray); scalar.setVal(1, gray); scalar.setVal(2, gray);cvSet2D(imagePixels, y, x, scalar);       }       imageDst = new IplImage(imagePixels);       IplImage result = new IplImage(imagePixels);        cvSaveImage("manual_gray.png", result);       cvReleaseImage(imageSrc);


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/596063.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号