图像处理中,如何方便的同时获取图像的像素值和像素的坐标呢?

dawnblossoma 2010-01-13 02:32:41
图像处理中,如何方便的同时获取图像的像素值和像素的坐标呢?
...全文
1027 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
haiyangshishui 2012-07-12
  • 打赏
  • 举报
回复
举个列子吧!原来的图片,现在从原来的图片进行变幻得到新的图片,假如是640*480的图片,一图片的中心像素(320,240)为原点,像外面扩算发达,离他近的像素点放大,远离他的虽小,达到一种动态平衡,就是把原来的像素重新围绕着中心点排列,进行图像的任意变化
zyf19871205 2011-11-30
  • 打赏
  • 举报
回复
正好适合我,大神啊
anhuipl2010 2011-10-17
  • 打赏
  • 举报
回复
好帖子,顶起来
zl413308439 2011-06-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 preston2006 的回复:]
在视类添加OnMouseMove函数,鼠标移动到该像素时会在状态栏显示
void CMyView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CStatusBar *pStatusBar = (CStatusBar *)A……
[/Quote]

谢谢很厉害!
wendy425 2010-01-15
  • 打赏
  • 举报
回复
"如果是24位图,像素值的顺序是G,B,R"--- 不好意思写错了,顺序应该是B、G、R。
dawnblossoma 2010-01-14
  • 打赏
  • 举报
回复
鼠标在图像中标的点的坐标与通过图像数据区遍历得到的坐标是一致的吧?
aaaa3105563 2010-01-14
  • 打赏
  • 举报
回复
up
wendy425 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dawnblossoma 的回复:]
鼠标在图像中标的点的坐标与通过图像数据区遍历得到的坐标是一致的吧?
[/Quote]

我也不知道有没有理解你的意思:
一般情况下,用鼠标移动获得的x,y是以左上角为原点的;而图像数据区域的第一个像素值是我们正常角度看图像的最后一行的从左向右的第一个像素值,如果是24位图,像素值的顺序是G,B,R。到达这一行的最后一个像素后,接下来就是倒数第二行的第一个像素。

如果你能在VC中获得图像的像素值,但是不清楚它的存放顺序和规则,你可以通过Matlab得到图像的全部像素值,然后做一下对比就清楚了。
preston2006 2010-01-14
  • 打赏
  • 举报
回复
在视类添加OnMouseMove函数,鼠标移动到该像素时会在状态栏显示
void CMyView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CStatusBar *pStatusBar = (CStatusBar *)AfxGetMainWnd()
->GetDescendantWindow(AFX_IDW_STATUS_BAR);//获取状态栏指针
CString str1;
CString str2;
// 计算图像的绝对坐标
CPoint pt = point;
int scroll_x = GetScrollPos(SB_HORZ); // 滚动条已滚过的长度
int scroll_y = GetScrollPos(SB_VERT);
pt.x += scroll_x+1; // 因为图像坐标从0开始,所以最后结果要加1
pt.y += scroll_y+1;

// 读取当前点的颜色
COLORREF color = GetDC()->GetPixel(point); // COLORREF中颜色的排列顺序是BGR
str1.Format( " 坐标: x=%d y=%d ",pt.x,pt.y );
str2.Format( " 灰度值: %d ",GetRValue(color) );
pStatusBar->SetPaneInfo(1,NULL,NULL,130);
pStatusBar->SetPaneText(1,str1);
pStatusBar->SetPaneInfo(2,NULL,NULL,100);
pStatusBar->SetPaneText(2,str2);
CScrollView::OnMouseMove(nFlags, point);
}
yxwsbobo 2010-01-13
  • 打赏
  • 举报
回复
根据像素坐标可以获取所在坐标的像素值
vann1982 2010-01-13
  • 打赏
  • 举报
回复
这两个。。你如何确定你需要的点呢? 鼠标点?
同时又是啥概念?
取像素色彩数值肯定需要坐标啊,必然有先后。。

19,468

社区成员

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

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