vc 下 用 opencv 实现的--- 遍历图像,返回值为 a 的 像素点 的坐标
来源:互联网 发布:se源码 编辑:程序博客网 时间:2024/05/18 01:50
小程序,随便记录下下~~
遍历一幅图像,返回 像素值 为 0 的 点的坐标:
#include "stdafx.h"#include <stdio.h>#include <cv.h>#include <highgui.h>#include "cvaux.h" //必须引此头文件using namespace std;vector<CvPoint> cal_dark(IplImage *img );int main( int argc, char** argv ){ IplImage *img = cvLoadImage("rice.png",0);if(img == NULL){printf("img load failed!\n");return 0;}cvThreshold(img, img, 128, 255, CV_THRESH_BINARY);vector<CvPoint> myVector = cal_dark(img);int size = myVector.size();int i;for(i = 0; i < size; i++){//printf("[%d, %d]", myVector[i].x, myVector[i].y);if( i == 10)printf("\n");}///////////////////////////test////////////////////////IplImage *test = cvCreateImage(cvGetSize(img), 8, 1);memset(test->imageData, 255, test->widthStep * test->height);for(i = 0; i < size; i++){CvScalar s;s.val[0] = 0.0;cvSet2D(test, myVector[i].x, myVector[i].y, s);}cvNamedWindow("img"); //原图二值化后cvNamedWindow("test"); //根据得到的坐标生成的图像cvShowImage("img",img);cvShowImage("test",test);cvWaitKey(-1);cvReleaseImage(&img);cvReleaseImage(&test);cvDestroyAllWindows();getchar();return 0;}vector<CvPoint> cal_dark(IplImage *img ){int w = img->width;int h = img->height;//CvPoint *pos_dark = (CvPoint *)malloc(w * h *sizeof(CvPoint));vector<CvPoint> PointVector;int i, j;for(i = 0; i < h; i++){for(j = 0; j < w; j++){CvScalar s = cvGet2D(img, i, j);if(s.val[0] == 0.0){CvPoint point=cvPoint(i, j);PointVector.push_back(point);}}}return PointVector;}
结果:
===================================================================================
PS:
创建一幅图像,用memset置为 255 时:
IplImage *test = cvCreateImage(cvGetSize(img), 8, 1);
memset(test->imageData, 255, test->widthStep * test->height);
注意, 是把 IplImage 图像的 数据 部分 置为 255 ,数据起始地址是 test->imageData
话说, IplImage 的头 长度 怎么计算来着?
- vc 下 用 opencv 实现的--- 遍历图像,返回值为 a 的 像素点 的坐标
- OPENCV系列(一)读取图像中任意点的像素值,并显示坐标
- OpenCV遍历彩色图像、灰度图像的像素值方法
- 图像指定坐标点的各通道像素值提取
- 遍历图像像素点的方法
- 用opencv读取图像的每个像素值,鼠标点击获取每一个点,并显示像素
- OpenCV中用于读取图像像素点的值
- opencv 图像像素点的值获取与显示
- 基于opencv查看图像各像素点的RGB值
- opencv如何获得图片所有像素点的坐标
- 【OpenCV】OpenCV中获取图像的像素点并处理
- OpenCV 图像的翻转 flip实现 与遍历像素的方式实现
- opencv学习(5) 使用迭代器遍历图像的像素
- 利用OpenCV鼠标事件设置函数setMouseCallback显示图像像素的RGB、HSV和坐标值!
- OpenCV2 访问各个像素点的方法(图像遍历)
- 使用OpenCV获取图像中某一点的像素值和修改某一点的像素值
- 使用OpenCV获取图像中某一点的像素值和修改某一点的像素值
- 图像的像素点操作【OpenCV学习笔记3】
- 输入小组人数及成绩
- 利用函数解决分段函数的值
- POJ3009:Curling 2.0(DFS)
- 订制ios系统键盘的特定按钮
- ListView中getView的原理+如何在ListView中放置多个item(分隔线)
- vc 下 用 opencv 实现的--- 遍历图像,返回值为 a 的 像素点 的坐标
- webservice的加密
- pexpect学习笔记
- ListView 改变缓存颜色值
- 分享一个笑话
- android如何获取一张图片(照相跟图库)
- 解决myeclipse代码提示缓慢和光标乱跳问题
- VideoView 在ScrollView中 滑动出现的问题
- [SQL][2012-11-29] sql using 语句