《学习OpenCV》一书的课后习题第四章的第二题

crystal8700 2010-07-22 04:23:21
原题如下:
创建一个程序,使其读入并显示一幅图像。当用户点击图像时,获取图像对应相素的颜色值(BGR),并在图像上点击鼠标处用文本将颜色值显示出来。
a.对于练习1b,在三幅图像中任何地方点击鼠标,将当前图像的坐标显示在点击鼠标处

请问:
1、题中说的“对应相素的颜色值”是什么意思?它到底是一个值,还是三个值(B、G、R三个通道,每个通道一个值?)呢?
2、怎样可以在点击鼠标处用文本的形式显示出东西呢?
3、怎样可以在图像中的任何地方,显示出鼠标所在点的坐标呢?

另外,请教一下cvCopy()这个函数的用法:
1、如果有一彩色图像img,它的灰度图像img_gray,我们知道,前者是三通道的,后者是单通道的,请问怎样将它们同时粘贴到同一幅图像里面去呢?
2、如果有一幅图像src,和另处一幅图像dst,我用cvCopy函数将src粘到了dst中,但是发现src粘过去后是反的,我怎样请src旋转360度,得到正向的粘贴的图像呢?
...全文
207 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
诚朴勇毅 2012-12-23
  • 打赏
  • 举报
回复
我也想看看图像的像素值
crystal8700 2010-07-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xiuxianshen 的回复:]
1. 当前像素值根据不同的数据存储结构有不同的理解,就Opencv而言,根据当前的数据结构应该是一组数据,一个灰度值或者一组RGB数据或者其他
2. 建议看看tips的方法
3. 看看MFC的OnMouseMove响应,当前Point点的坐标就是鼠标坐标
[/Quote]
谢谢!问题已经基本解决了!
我先定义了一个回调函数,在回调函数里面定义一个指针,指向图像的点(x,y)处,然后获取此点的R,G,B的值,再用sprintf和cvPutText()函数将R,G,B的值输出。
然后在主函数里面用cvSetMouseCallback()注册回调函数便可!

crystal8700 2010-07-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 swimmingfish2004 的回复:]
引用 1 楼 crystal8700 的回复:
下面问题用cvConvertImage(src,dst,CV_CVIMG_FLIP)已经解决了!
2、如果有一幅图像src,和另处一幅图像dst,我用cvCopy函数将src粘到了dst中,但是发现src粘过去后是反的,我怎样请src旋转360度,得到正向的粘贴的图像呢?

旋转360度后不又转回来了吗?
[/Quote]

呵呵,是我表达有误,是转180度吧!多谢提醒噢!
xiuxianshen 2010-07-23
  • 打赏
  • 举报
回复
1. 当前像素值根据不同的数据存储结构有不同的理解,就Opencv而言,根据当前的数据结构应该是一组数据,一个灰度值或者一组RGB数据或者其他
2. 建议看看tips的方法
3. 看看MFC的OnMouseMove响应,当前Point点的坐标就是鼠标坐标
向立天 2010-07-23
  • 打赏
  • 举报
回复
没用过OpenCV
swimmingfish2004 2010-07-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 crystal8700 的回复:]
下面问题用cvConvertImage(src,dst,CV_CVIMG_FLIP)已经解决了!
2、如果有一幅图像src,和另处一幅图像dst,我用cvCopy函数将src粘到了dst中,但是发现src粘过去后是反的,我怎样请src旋转360度,得到正向的粘贴的图像呢?
[/Quote]
旋转360度后不又转回来了吗?
crystal8700 2010-07-22
  • 打赏
  • 举报
回复
下面问题用cvConvertImage(src,dst,CV_CVIMG_FLIP)已经解决了!
2、如果有一幅图像src,和另处一幅图像dst,我用cvCopy函数将src粘到了dst中,但是发现src粘过去后是反的,我怎样请src旋转360度,得到正向的粘贴的图像呢?

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧