Qt里面怎么获取图像像素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt里面怎么获取图像像素相关的知识,希望对你有一定的参考价值。

XY就是从1到宽度,从1到高度,RGB值通过QImage::pixel获取,取得的值转为QColor,就能分别取到RBG了。
~如果你认可我的回答,请及时点击【采纳为满意回答】按钮
~~手机提问的朋友在客户端右上角评价点【满意】即可。
~你的采纳是我前进的动力
~~O(∩_∩)O,记得好评和采纳,互相帮助,谢谢。
参考技术A

只要几句代码就能搞定:

    QDesktopWidget *desk = QApplication::desktop();
    QScreen * screen = QGuiApplication::primaryScreen();
    QPixmap p = screen->grabWindow(desk->winId());
    QImage image = p.toImage();
    QColor Colos= image.pixelColor(100,100);//此处就已经能拿到颜色了
    
    //如果想打印输出,把颜色转换字符串
    QString strings = "屏幕坐标(100,100)的颜色为:"+QString("RBGA(%1, %2, %3, %4)")
            .arg(Colos.red())
            .arg(Colos.green())
            .arg(Colos.blue())
            .arg(Colos.alpha());
    std::cout << strings.toStdString().data() << std::endl;

参考技术B XY就是从1到宽度,从1到高度,RGB值通过QImage::pixel获取,取得的值转为QColor,就能分别取到RBG了。
~如果你认可我的回答,请及时点击【采纳为满意回答】按钮
~~手机提问的朋友在客户端右上角评价点【满意】即可。

opencv 怎么取到灰度图像的像素值,C++接口的

cv::Mat image=cv::imread("a.jpg");
cv::Mat image2;
image2.create(image.rows,image.cols,image.type());
cv::cvtColor(image,image2,CV_BGR2GRAY);
怎么取出image2在某点的像素值

opencv获取灰度图像的像素值的方法如下:

int main()
   
   Mat img = imread("lena.jpg");
   imshow("Lena Original", img);

   for (int row = 0; row < img.rows; row++)
   
       for (int col = 0; col < img.cols; col++)
       
           //主要是这里的代码
           if(*(img.data + img.step[0] * row + img.step[1] * col + img.elemSize1() * 2) > 128)
           
               //[row, col]像素的第 1 通道地址被 * 解析(blue通道)
               *(img.data + img.step[0] * row + img.step[1] * col) = 255;
               //[row, col]像素的第 2 通道地址被 * 解析(green通道), 关于elemSize1函数的更多描述请见 Fn1 里所列的博文链接
               *(img.data + img.step[0] * row + img.step[1] * col + img.elemSize1()) = 255;
               //[row, col]像素的第 3 通道地址被 * 解析(red通道)
               *(img.data + img.step[0] * row + img.step[1] * col + img.elemSize1() * 2) = 255;
           
       
   
   imshow("Lena Modified", img);
   cvWaitKey();
   return 0;

输出:

参考技术A #include"cv.h"
#include"highgui.h"
#include <iostream>
using namespace std;

int main(int argc, char** argv)

IplImage* src = cvLoadImage( "0.bmp", 0 ); //导入图片
int width=src->width;//图片宽度
int height = src->height;//图片高度

for (size_t row=0;row<height;row++)

uchar* ptr = (uchar*)src->imageData+row*src->width;//获得灰度值数据指针
for (size_t cols=0;cols<width;cols++)

int intensity=ptr[cols];
cout<<intensity<<" ";



return 0;
追问

谢谢你 不过这个是c接口的,我大概已经想起了,遍历Mat即可

本回答被提问者和网友采纳

以上是关于Qt里面怎么获取图像像素的主要内容,如果未能解决你的问题,请参考以下文章

ps里面文字的大小是指像素还是啥 比如说文字36点 是指字体大小 还是像素

使用OpenCV如何获取图像每个像素的灰度值??

opencv 怎么取到灰度图像的像素值,C++接口的

获取 Pixmap 是调用函数 500 次时的空像素图

opencv如何读取多边形区域内的像素值?

canvas使用图像(绘制图、图像平铺、图像剪裁、像素处理、绘制文字)