【OpenCV学习笔记5】读取图像中任意点的像素值
2011-04-04 08:54
706 查看
读取图像中任意点的像素值
SkySeraph Apr 4th 2011 HQU
Email:zgzhaobo@gmail.com QQ:452728574
Latest Modified Date:Apr 4th 2011 HQU
一、说明:类似于PS中的功能,鼠标放到图片中的某点即能显示其像素值
二、源码:
View Code
三、效果
参考:http://nashruddin.com/OpenCV_Utility_Reading_Image_Pixels_Value
Author: SKySeraph
Email/GTalk: zgzhaobo@gmail.com QQ:452728574
From: http://www.cnblogs.com/skyseraph/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,请尊重作者的
SkySeraph Apr 4th 2011 HQU
Email:zgzhaobo@gmail.com QQ:452728574
Latest Modified Date:Apr 4th 2011 HQU
一、说明:类似于PS中的功能,鼠标放到图片中的某点即能显示其像素值
二、源码:
View Code
/*===============================================// 功能:OpenCV Utility: Reading Image Pixels Value 时间:4/4/2011 SkySeraph HQU //===============================================*/ #include "iostream" #include "cv.h" #include "highgui.h" using namespace std; #include "math.h" #pragma comment(lib,"highgui.lib") #pragma comment(lib,"cv.lib") #pragma comment(lib,"cvaux.lib") #pragma comment(lib,"cxcore.lib") // 源图像 const char* filename = "D:\\My Documents\\My Pictures\\Sample\\lena.bmp"; // 隐藏Console窗口 #pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) /*=============================================*/ void mouseHandler(int event, int x, int y, int flags, void* param) { IplImage* img0, * img1; img0 = (IplImage*) param; img1 = cvCloneImage(img0); /*-------------cvInitFont-------------------// //功能:初始化字体结构体 //原型:void cvInitFont( CvFont* font, //被初始化的字体结构体 int font_face,//字体名称标识符 $ CV_FONT_HERSHEY_SIMPLEX - 正常大小无衬线字体。 $ CV_FONT_HERSHEY_PLAIN - 小号无衬线字体。 $ CV_FONT_HERSHEY_DUPLEX - 正常大小无衬线字体。( 比CV_FONT_HERSHEY_SIMPLEX更复杂) $ CV_FONT_HERSHEY_COMPLEX - 正常大小有衬线字体。 $ CV_FONT_HERSHEY_TRIPLEX - 正常大小有衬线字体 ( 比CV_FONT_HERSHEY_COMPLEX更复杂) $ CV_FONT_HERSHEY_COMPLEX_SMALL - CV_FONT_HERSHEY_COMPLEX 的小译本。 $ CV_FONT_HERSHEY_SCRIPT_SIMPLEX - 手写风格字体。 $ CV_FONT_HERSHEY_SCRIPT_COMPLEX - 比CV_FONT_HERSHEY_SCRIPT_SIMPLEX更复杂。 //这个参数能够由一个值和可选择的CV_FONT_ITALIC字体标记合成,就是斜体字 double hscale,//字体宽度。 //如果等于1.0f,字符的宽度是最初的字体宽度。如果等于0.5f,字符的宽度是最初的字体宽度的一半 double vscale,//字体高度。 double shear=0,//字体的斜度。 //当值为0时 ,字符不倾斜;当值为1.0f时,字体倾斜≈45度,等等。厚度让字母着重显示。函数cvLine用于绘制字母 int thickness=1, //字体笔划的粗细程度 int line_type=8 //字体笔划的类型 ); //--------------------------------------------*/ CvFont font; uchar* ptr; char label[20]; cvInitFont(&font, CV_FONT_HERSHEY_PLAIN, .8, .8, 0, 1, 8); if (event == CV_EVENT_LBUTTONDOWN) //单击左键 { /* read pixel */ ptr = cvPtr2D(img1, y, x, NULL);//返回指向特殊数组元素的指针 && cvGet2D返回指向特殊数组的元素 /*display the BGR value*/ sprintf(label, "(%d, %d, %d)", ptr[0], ptr[1], ptr[2]); cvRectangle( img1, cvPoint(x, y - 12), cvPoint(x + 100, y + 4), CV_RGB(255, 0, 0), CV_FILLED, 8, 0 ); cvPutText( img1, label, cvPoint(x, y), &font, CV_RGB(255, 255, 0) ); cvShowImage("img", img1); } } int main(int argc, char** argv) { IplImage* img; /* usage: <prog_name> <image> */ //if (argc != 2) //{ // printf("Usage: %s <image>\n", argv[0]); // return 1; //} /* load image */ img = cvLoadImage(filename, 1); /* always check */ assert(img); /* create a window and install mouse handler */ cvNamedWindow("img", 1); // 注册鼠标事件 cvSetMouseCallback("img", mouseHandler, (void*)img); cvShowImage("img", img); cvWaitKey(0); /* be tidy */ cvDestroyAllWindows(); cvReleaseImage(&img); return 0; }
三、效果
参考:http://nashruddin.com/OpenCV_Utility_Reading_Image_Pixels_Value
Author: SKySeraph
Email/GTalk: zgzhaobo@gmail.com QQ:452728574
From: http://www.cnblogs.com/skyseraph/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,请尊重作者的
相关文章推荐
- 【OpenCV学习笔记】三、图像读取、显示及保存
- OpenCv学习笔记(六)----图像空间缩减,OpenCv中的计时函数和OpenCv中操作图像单个像素点的方法
- OpenCV(C++接口)学习笔记1-图像读取、显示、保存
- 【Python版】OpenCV学习笔记(2):读取和写入图像
- Opencv学习笔记——绘制图像的像素直方图
- OPENCV学习笔记2-5_扫描图像并访问相邻像素
- opencv学习笔记——访问图像中的像素
- Opencv学习笔记(2)模块,图像读取、显示、叠加、融合、颜色分离、亮度、对比度
- opencv学习笔记1::访问图像中像素的三类方法(用指针,迭代器,动态地址)代码及用时检测
- 我的OpenCV学习笔记(三):利用操作像素完成简单的图像处理:加入椒盐噪声、图像翻转、改变对比度、图像锐化
- OpenCV 2 学习笔记(5): 像素的访问:给图像加入椒盐噪声
- openCV学习笔记(四):图像遍历和像素操作
- Python OpenCV学习笔记之:图像读取,显示及保存
- OpenCV学习笔记九——访问图像中的像素
- 【OpenCV应用笔记】(彩色/灰度)图像像素值读取并保存到txt文件
- OpenCV应用笔记】(彩色/灰度)图像像素值读取并保存到txt文件
- OpenCV学习笔记---- 挨个读取图像文件夹下的所有文件,进行样本训练
- 双目视觉学习笔记(一)--qtcreator下使用opencv读取并存储双摄像头图像
- OpenCV(C++接口)学习笔记1-图像的读取、显示、保存
- 【opencv学习笔记五】一个简单程序:图像读取与显示