显示-关于读取lena图像的灰度值到状态栏的问题

问题描述

关于读取lena图像的灰度值到状态栏的问题
本人小白,最近看了点数字图像的书,为了便于图像的分析,希望把这幅图像的数据信息显示在状态栏上,但显示的时候却出了问题:我想让gray的值为该副图片的灰度值,可这个结果显然是不对的。先贴出在Mousemove消息下的代码如下,希望各位大神帮忙看下哪里出错了 ,感激不尽
void CImageProcessView::OnMouseMove(UINT nFlags CPoint point)
{

CClientDC dc(this);
COLORREF gray=dc.GetPixel(point);
CString str;
str.Format(""x=%dy=%dgray=%d""point.xpoint.ygray);
((CMainFrame*) GetParent())->m_wndStatusBar.SetWindowText(str);

}

解决方案

COLORREF RGB
(
BYTE byRed // red component of color
BYTE byGreen // green component of color
BYTE byBlue // blue component of color
);
COLORREF 是一个 32-bit 整型数值,它代表了一种颜色你直接转换肯定不对。
BYTE r = GetRValue(colorrrefRGB);
BYTE g = GetGValue(colorrrefRGB);
BYTE b = GetBValue(colorrrefRGB);
获取rgb值求平均。

时间: 2024-09-10 07:07:00

显示-关于读取lena图像的灰度值到状态栏的问题的相关文章

cximage-CXimage 怎样实现两幅图像对应点的灰度值相加

问题描述 CXimage 怎样实现两幅图像对应点的灰度值相加 我在用Cximage,要使两幅图像对应点的灰度值相加,生成一副新的图像.新手,请多多指教.

c++ 图像处理 阈值-图像中零灰度值的像素会影响OSTU算出的阈值吗

问题描述 图像中零灰度值的像素会影响OSTU算出的阈值吗 图像中零灰度值的像素会影响OSTU算出的阈值吗?根据累计直方图的计算,像素的概率密度乘以灰度值还是零,应该不会影响吧 解决方案 http://www.docin.com/p-439271701.html

图像处理-用C语言将bmp 8位灰度图的灰度值缩小16倍,调色板中数值由255行变成16行调

问题描述 用C语言将bmp 8位灰度图的灰度值缩小16倍,调色板中数值由255行变成16行调 用C语言将bmp 8位灰度图的灰度值缩小16倍,由0-255变成0-16,调色板中数值由255行变成16行,同时调色板rgbBlue rgbRed rgbGreen数值范围由0-255变成0-1.我用c语言实现后,为什么图片不再是灰度图,有了其他颜色??? ```#pragma once #ifndef BMP_H_INCLUDED #define BMP_H_INCLUDED #include #in

根据灰度值填充字符-单文件单线程版_C#教程

看到软二的群里,某童鞋发了个自己的java大作业的截图,类似于一个图片,处理后,根据不同的灰度值,填充不同的字符.故,我也用C#来写个玩玩~ 首先,图片读入内存,然后- - 有三种处理方式, 第一种是getPixel,然后setPixel... 第二种是将图片数据读出,放到byte数组中,然后去读,再copy回去. 第三种是不copy数据,直接在当前图片数据流上操作,然后再解锁就可以了. 由于去年做过类似的工作,所以知道效率问题,第一种...速度会很慢(相比较第二种和第三种).第二种和第三种相差

图像处理-用C++遍历文件夹连续显示的时候,按了控件之后直接显示最后一幅图像,这有可能是什么原因吗?

问题描述 用C++遍历文件夹连续显示的时候,按了控件之后直接显示最后一幅图像,这有可能是什么原因吗? 6C 用C++遍历文件夹连续显示的时候,通过控件来控制的,但是按了控件之后直接显示最后一幅图像,这有可能是什么原因吗?求各位大神给给建议,实在是搞不懂 解决方案 可能是你循环的时候没有每次分配新的内存,导致循环来循环去,图片都加载到同一个位图对象中,所以后面的把前面的冲了. 解决方案二: 最好给出相关的代码 如果是Windows平台,我怀疑是你是在主线程中遍历文件夹,按下控件,消息处理完毕界面才

java web-求解:为什么不能读取自动增长列的值,在修改过程中传值?

问题描述 求解:为什么不能读取自动增长列的值,在修改过程中传值? 解决方案 你的4后面有个空格,所以没法转换成数字 解决方案二: 异常显示是空格的问题.你可以检查下数据库中存的值是不是有空格,然后再检查下数据展示的代码是不是有空格. 如果数据库没有问题,就可能是这个值在页面是可编辑的,所以会接收到了误操作的空格.

c# dcm dicom标准-c#如何读取DCM图像,并获取图像信息

问题描述 c#如何读取DCM图像,并获取图像信息 通过c#编写一个程序,能够读入DCM格式的图片,就是医学图像遵循DICOM标准,获取医学图像上所包含的病人信息.求大神指导.这个问题想了好久,网上有c++的例子,但是看不懂,就是没有c#的例子.求大神.

c++-【OpenCv&MFC】MFC中用子线程读取摄像头图像到Picture Control的问题~~~

问题描述 [OpenCv&MFC]MFC中用子线程读取摄像头图像到Picture Control的问题~~~ 如题,我想在程序中同时读取多个摄像头的数据到不同的PictureControl中,每个摄像头的读取工作都分别放在一个新的线程中执行,需要怎么实现?? 求各路大神帮忙写个Demo供学习学习~~~或者不行的话提供个思路也行~~~ 解决方案 把摄像头IP 和 PictureControl ID 还有主窗口句柄 封装到一个结构体,把这个参数传到你的多线程函数里面就可以为所欲为了 解决方案二: O

二进制数据-Mfc与图像处理关于读取二进制图像数据

问题描述 Mfc与图像处理关于读取二进制图像数据 有一些二进制图像数据.要求写读取裸图像信息的程序.该怎么写啊?用到opencv 解决方案 有几点不明,二进制数据?是内存中的数据吗?还是存在硬盘上的二进制文件? 如果是内存中的数据,使用Opencv的Mat类,一个个的赋值也可以,如果内存中的数据是连续的直接使用Mat的构造函数也可以.如果是文件中的二进制数据,先将文件读入内存中,再根据文件的结构,分解数据,将属于图像数据的部分赋值给Mat类 不同情况不同处理···