QImage和QPixmap的区别和使用

QImage和QPixmap QImage和QPixmap都是可以用于显示图片的,但是有一些不同。比如说QPixmap是与硬件关联的,而QImage是硬件独立的。硬件关联的一个特点是不可以跨线程访问。就是说QImage可以单独的用线程加载,然后在另一个线程展示,而QPixmap不可以。 对这个硬件关联我没有这个概念,体会不深,但是在做图片多线程加载的时候,使用QPixmap吃了很多苦头。 1、QPixmap不可以使用在子线... 阅读详情
一、基本概念和特点
  1. QImage
    • 概念:QImage是Qt库中用于处理图像数据的一个类。它提供了直接访问和操作图像像素的接口。
    • 特点:
      • 可以独立于屏幕分辨率和设备处理图像。
      • 支持读取和保存多种图像格式,如PNG、JPEG、BMP等。
      • 可以在没有图形界面的情况下使用,例如服务器端图像处理。
      • 内部存储格式无关,可存储alpha通道信息,支持像素透明度。
  1. QPixmap
    • 概念:QPixmap是用于在绘图设备上优化显示图像的Qt类。
    • 特点:
      • 专为屏幕分辨率优化,依赖于底层图形系统。
      • 适用于图像的显示和图形界面的绘制,如移动、缩放等图形操作。
      • 不适用于像素级别的操作;若需修改图像数据,通常先转换为QImage。
二、实际应用中的区别
  1. 性能:
    • QImage:更适合于图像处理和操作,因为它允许直接访问和操作像素数据。在处理大量图像数据或进行复杂图像处理时,QImage可能表现出更高的性能。
    • QPixmap:在图像显示方面性能更优,因为它针对屏幕分辨率进行了优化,并且利用了底层图形系统的硬件加速功能。
  1. 适用场景:
    • QImage:适用于需要进行复杂图像处理或分析的场景,如滤镜效果、图像合成、色彩调整等。此外,它也适用于需要读取、保存或操作多种图像格式的情况。
    • QPixmap:主要用于在图形用户界面(GUI)上显示图像,特别是在需要频繁绘制、移动或缩放图像时。它也适用于需要快速响应的用户界面,因为QPixmap的绘制速度通常比QImage快。
三、实际案例或示例
  1. 使用QImage进行图像处理:
    假设你正在开发一个图像编辑软件,用户可以加载图像,并应用各种滤镜和效果。在这种情况下,你可以使用QImage加载图像,然后直接访问其像素数据进行处理。例如,你可以实现一个模糊滤镜,通过遍历每个像素并应用模糊算法来改变其颜色值。
  2. 使用QPixmap在GUI中显示图像:
    如果你正在开发一个图形用户界面应用程序,如一个图片查看器或游戏界面,你可能需要使用QPixmap来高效地显示图像。例如,在图片查看器中,你可以使用QPixmap加载并显示用户选择的图像文件。由于QPixmap针对屏幕分辨率进行了优化,因此图像将以最佳质量呈现给用户。

当然,以下是对QImage和QPixmap的具体使用示例:
QImage 示例:图像处理

假设我们需要对一个图像进行灰度化处理,即把彩色图像转换为黑白图像。这个操作涉及到对图像的每个像素进行处理,因此QImage是非常适合的工具。

#include <QImage>  
#include <QColor>  
  
// 加载原始彩色图像  
QImage originalImage("path/to/color_image.jpg");  
  
// 创建一个与原始图像同样大小的QImage对象用于存储灰度图像  
QImage grayImage(originalImage.size(), QImage::Format_Grayscale8);  
  
// 遍历原始图像的每个像素  
for (int y = 0; y < originalImage.height(); ++y) {  
    for (int x = 0; x < originalImage.width(); ++x) {  
        QRgb pixel = originalImage.pixel(x, y);  
          
        // 将彩色像素转换为灰度值  
        int gray = qGray(pixel);  
          
        // 在灰度图像中设置对应的灰度值  
        grayImage.setPixel(x, y, qRgb(gray, gray, gray));  
    }  
}  
  
// 保存灰度图像  
grayImage.save("path/to/gray_image.jpg");

在这个例子中,我们加载了一个彩色图像,然后创建了一个新的灰度图像。通过遍历原始图像的每个像素,并将其转换为灰度值,我们生成了一个新的灰度图像,并将其保存。

QPixmap 示例:图像显示

假设我们正在开发一个图形用户界面应用,其中需要在窗口中显示一个图像。QPixmap是用于这种目的的理想选择,因为它针对显示进行了优化。

#include <QPixmap>  
#include <QLabel>  
#include <QApplication>  
#include <QWidget>  
#include <QVBoxLayout>  
  
int main(int argc, char *argv[]) {  
    QApplication app(argc, argv);  
      
    QWidget window;  
    QVBoxLayout *layout = new QVBoxLayout(&window);  
      
    // 加载图像到QPixmap  
    QPixmap pixmap("path/to/image.jpg");  
      
    // 使用QLabel显示QPixmap  
    QLabel *imageLabel = new QLabel(&window);  
    imageLabel->setPixmap(pixmap);  
      
    layout->addWidget(imageLabel);  
    window.setLayout(layout);  
    window.show();  
      
    return app.exec();  
}

在这个例子中,我们创建了一个简单的Qt应用程序窗口,并使用QLabel来显示一个由QPixmap加载的图像。这种方法非常适合于在GUI应用程序中展示图像,因为QPixmap是专门为高效显示而设计的。

这两个示例分别展示了QImage在图像处理方面的用途和QPixmap在图像显示方面的用途。

综上所述,QImage和QPixmap在Qt中各自扮演着不同的角色。选择使用哪一个取决于你的具体需求:是需要进行复杂的图像处理还是简单地在屏幕上显示图像。

四、QPixmap和QImage之间的相互转换

在Qt框架中,QPixmap和QImage是两种常用的图像处理类,它们之间可以相互转换。下面将详细介绍如何进行这种转换:

1. QPixmap转换为QImage

将QPixmap对象转换为QImage对象相对简单,可以使用QPixmap的toImage()方法。这个方法会返回一个与原始QPixmap具有相同内容的QImage对象。

示例代码如下:

QPixmap pixmap("path/to/image.png");  
QImage image = pixmap.toImage();
2. QImage转换为QPixmap

将QImage对象转换为QPixmap对象,可以使用QPixmap的静态方法fromImage()。这个方法接受一个QImage对象作为参数,并返回一个包含相同图像数据的QPixmap对象。

示例代码如下:

QImage image("path/to/image.png");  
QPixmap pixmap = QPixmap::fromImage(image);
注意事项
  • 在进行转换时,需要注意图像格式的兼容性。虽然大多数常见图像格式都可以在这两种类型之间无缝转换,但某些特定格式或具有特殊属性的图像可能会在转换过程中遇到问题。
  • 转换过程中可能会涉及色彩空间、分辨率等属性的变化,因此在进行图像处理或显示之前,最好确认转换后的图像是否满足需求。
  • QPixmap是为在屏幕上显示图像而设计和优化的,而QImage则是为I/O以及直接像素访问和操作而设计和优化的。因此,在选择使用哪种类型时,应根据具体需求来决定。

总的来说,QPixmap和QImage之间的转换在Qt中是非常直接和方便的,只需调用相应的方法即可实现。这种转换功能使得在Qt中进行图像处理和显示变得更加灵活和高效。

QPixmap 和 QImage 显示用 QPixmap,处理用 QImage:两者常结合使用,例如用 QImage 加载并处理图像后,转换为 QPixmap 显示注意平台差异:在非 Windows 平台中,QPixmap 的硬件依赖可能影响性能优化策略:小图直接加载为 QPixmap,大图优先用 QImage 处理。 阅读详情

相关推荐

QT 之绘图进阶: 图片绘图类QPixmap、QImage、QPicture

绘图设备是指继承 QPaintDevice 的子类,你可以使用 QPainter 直接在其上面绘制图形,Qt 一共提供了四个这样继承 QPaintDevice 的绘图设备类,分别是:QPixmap、QBitmap、QImage和 QPicture。QPixmap专门为图像在屏幕上的显示做了优化;QBitmap是 QPixmap 的一个子类,它的色深限定为 1,你可以使用 QPixmap 的 isQBitmap() 函数来确定这个QPixmap 是不是一个 QBitmap;

houxian1103的博客 1万+

Qt图片绘图类QPixmap、QImage、QPicture

Qt图片绘图类QPixmap、QImage、QPicture

m0_60259116的博客 2445

intel-VROC raid卡驱动 centos7.9

u盘进入系统,按e,在出现下面在quiet前面输入inst.dd initcall_blacklist=vmd_drv_init 后按Ctrl和x,开始引导。进入系统,按e,在出现下面在quiet前面输入inst.dd inicll_blacklist=vmd_drv_init 后按Ctrl和x,开始引导。驱动完成后,在输入 c 回车, 引导过程开始,进入安装界面。输入1 ,选择这个ISO驱动文件里的rpm包。输入1 ,选择这个ISO驱动文件里的rpm包。vi编辑 /etc/default/grub。

dacming的博客 4542

QT中的QImage与QPixmap区别

总结来说,`QImage`更适合于图像的处理和操作,而`QPixmap`更适合于图像的显示和图形界面的绘制。- `QPixmap`不适用于像素级别的操作,如果需要修改图像的像素数据,通常先将`QPixmap`转换为`QImage`,修改完成后,再转换回`QPixmap`。- `QImage`是一个用于处理图像数据的类,它提供了访问图像每个像素的接口,并且可以在图像上进行像素级别的操作。在Qt中,`QImage`和`QPixmap`都是用于处理图像数据的类,但它们在设计上有所不同,适用于不同的用途。

qq_43517257的博客 1232

eNSP搭建基础网络

1、除5的环回地址固定以外,整个其他所有网段基于192.168.1.0/24进行合理的IP地址划分 2、R1-R4每个路由器存在两个环回接口,用于模拟连接pc网段﹔地址也在192.168.1.0/24这个网络范围内 3、R1-R4上不能直接编写到达5.5.5.0/24的静态路由,但依然可以访问 4、全网可达,尽量减少每台路由器,路由表条目数量,避免环路出现5R4与R5间,正常100oA链路通信,故障时自动改为100M 全网使用192.168.1.0/24网段进行划分,尽量减少路由条目Pc端IP使用pHcP技

在月光下棕榈树的叶子在瑟瑟抖动 8469

【可信数据空间-连接器技术架构设计方案】

一句话概括连接器是可信数据空间的“数据保镖”和“外交官”。连接器就是一个部署在你本地的软件代理,它代表你安全地对外提供数据服务,确保在共享数据价值的同时,牢牢守住数据的所有权和控制权。它是实现“数据可用不可见”这一理想的关键技术部件。一个生动的比喻:银行的金库和接待员想象一下,你的数据就是藏在银行金库里的黄金和钞票。金库(你的内部数据库): 绝对安全,外人绝对不能进。接待员(连接器): 坐在银行大厅里,负责与客户打交道。客户向接待员提出请求:“我想取1000元。

u014716614的博客 2270

QImage与QPixmap区别

原因: 关于这个话题,我其实本人刚开始在windows下进行Qt开发时,并没有太在意?当突然被问到具体区别时,我突然就懵了。特意整理?? 参考网址: https://www.cnblogs.com/s_agapo/archive/2012/03/14/2395603.html https://blog.youkuaiyun.com/ailinty/article/details/8964431 https:/...

liunanya的博客 1万+

wincc 服务器授权型号,WinCC V7.5 SP1软件安装及授权方法

上篇教程给大家介绍了TIA Portal V16 安装方法,今天分享一下WinCC V7.5 SP1。目前V7.5 SP1是WinCC最新的版本,发布时间2019年11月13日。先放一个官网对WinCC V7.5 的介绍视频,感兴趣的可以先看一下。1、软件下载官网下载链接:https://support.industry.siemens.com/cs/document/109772879五个文件下...

weixin_39956110的博客 1万+

QImage与Qpixmap的区别

1、QPixmap主要是用于绘图,针对屏幕显示而最佳化设计,QImage主要是为图像I/O、图片访问和像素修改而设计的      2、QPixmap依赖于所在的平台的绘图引擎,故例如反锯齿等一些效果在不同的平台上可能会有不同的显示效果,QImage使用Qt自身的绘图引擎,可在不同平台上具有相同的显示效果      3、目前的Qt会把QPixmap都存储在graphics m

duzhongliang的博客 2092

人工智能,不止于模型:四步实现完整工作流

工程师越来越多地致力于将人工智能 (AI) 集成到自己的项目和应用中,同时不断着力提升自己的 AI 技能。面对 AI 问题,工程师首先要了解什么是 AI,以及如何将它纳入当前工作流,这看似简单,实则未必容易。在 Google 中搜索“什么是 AI?”会得到数百万条结果,包括不同程度的技术和相关信息。那么,对工程师而言,AI 意味着什么?人们对 AI 的关注主要集中在 AI 模型上,受此影响,工程师会迅速投入 AI 建模的研究。

r1832644594的博客 2815

华为OD机试真题 新系统 - 8位LED控制器 (Java/Py/C/C++/Js/Go)

本文整理华为 OD 机试新系统机考真题库,涵盖高频考点精析与完整题目内容,提供 C 语言、Java、C++、Python、Go、JavaScript 多语言源码实现,搭配详细解题思路讲解,并支持在线 OJ 刷题练习,助力高效备考华为 OD 机试新系统。

算法大师! 1976

qpixmap mysql_QPixmap和QImage的区别及剖析

2011年的文章,好老。。。。(一)QPixmap和QImage的区别QPixmap是专门为绘图而生,当需要绘制图片时你需要使用QPixmap。QImage则是为I/O,为图片像素访问以及修改而设计的。如果你想访问图片的像素或是修改图片像素,则需要使用QImage,或者借助于QPainter来操作像素。另外跟QImage不同是,QPixmap跟硬件是相关的,如X11, Mac 以及 Symbian...

weixin_32208021的博客 524

RabbitMQ高级特性 - 生产者消息确认机制

为了保证信息 从生产者 发送到 队列,因此引入了生产者的消息确认机制.通过事务机制实现.通过发送确认机制(confirm 和 return)实现.因为事务机制比较消耗性能,在实际工作中用的也不多,因此这里主要介绍confirm 和 return机制来实现发送放的确认.a)confirm 确认模式如上图,confirm 确认模式主要保障于 生产者 到 交换机 的消息可靠性.如果 Exchange成功收到消息,那么 ConfirmCallback 这个回调 ack 参数就为true。

CYK_byte的博客 1886

QPixmap、QImage、QBitmap和QPicture的区别

·QImage与Qpixmap的区别 1、QPixmap主要是用于绘图,针对屏幕显示而最佳化设计,QImage主要是为图像I/O、图片访问和像素修改而设计的 2、QPixmap依赖于所在的平台的绘图引擎,故例如反锯齿等一些效果在不同的平台上可能会有不同的显示效果,QImage使用Qt自身的绘图引擎,可在不同平台上具有相同的显示效果 如果单纯的show出来一张图片,不做操作,选用QPixmap效率高一些,如果带操作,使用QImage QImage是与设备无关,QPixmap是...

hu626626的博客 1079

uniapp - [全端兼容] 实现精美Editor富文本编辑器功能,uniApp全平台兼容的富文本插件组件用户可上传图片及对接服务器存储文件等,手机移动端H5网页富文本/小程序富文本/App富文本!

uni-app,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,uniapp富文本编辑器,uniapp中如何实现各平台都兼容的富文本编辑器,Editor富文本插件,uniApp微信小程序富文本,UNI-APP安卓苹果ios系统App端富文本组件,editor富文本编辑器如何实现上传图片,图片上传后不显示怎么办,如何配置图像上传功能,富文本图片上传怎么传到服务器中,获取图片路径,editor插入图片,富文本编辑器上传图片,报错怎么办,跨域CORS处理,配置不行无效

🏆 前端领域优质创作者 1万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

QPixmap与QImage的区别

QPixmap依赖于硬件,QImage不依赖于硬件。QPixmap主要是用于绘图,针对屏幕显示而最佳化设计,QImage主要是为图像I/O、图片访问和像素修改而设计的。当图片小的情况下,直接用QPixmap进行加载,画图时无所谓,当图片大的时候如果直接用QPixmap进行加载,会占很大的内存,一般一张几十K的图片,用QPixmap加载进来会放大很多倍,所以一般图片大的情况下,用QImage进行加载...

wan一张白纸 3142

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

QImage QIcon QPixmap QPicture 之间的区别和联系

Qt图像绘制

威桑的博客 1567

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

QPixmap、QImage、QBitmap和QPicture 区别

QPixmap、QImage、QBitmap和QPicture 2012-01-25 21:24:18| 分类:Qt学习笔记| 标签:qtqimageqpixmap|字号大中小订阅 ·QImage与Qpixmap的区别 1、QPixmap主要是用于绘图,针对屏幕显示而最佳化设计,QImage主要是为图像I/O、图片访问和像素修改而设计的 2、QPixma

meilinbaobei的专栏 3947

QPixmap QBitmap QImage QPicture区别

QPixmap QBitmap QImage QPicture区别

ZQUly的博客 726

QPixmap 和 QImage区别

QPixmap是专门为绘图而生,当需要绘制图片时你需要使用QPixmap。QImage则是为I/O,为图片像素访问以及修改而设计的。如果你想访问图片的像素或是修改图片像素,则需要使用QImage,或者借助于QPainter来操作像素。另外跟QImage不同是,QPixmap跟硬件是相关的,如X11, Mac 以及 Symbian平台上,QPixmap 是存储在服务器端,而QImage则是存储在客

MoMo_KUA_1的专栏 1515

QPixmap和QImage的区别

QPixmap依赖于硬件,QImage不依赖于硬件。 QPixmap主要是用于绘图,针对屏幕显示而最佳化设计,QImage主要是为图像I/O、图片访问和像素修改而设计的。 当图片小的情况下,直接用QPixmap进行加载,画图时无所谓,当图片大的时候如果直接用QPixmap进行加载,会占很大的内存,一般一张几十K的图片,用QPixmap加载进来会放大很多倍,所以一般图片大的情况下,用QImage

路楷的专栏 1408

QPixmap和QImage的区别及剖析

2011年的文章,好老。。。。 (一)QPixmap和QImage的区别 http://www.thisisqt.com/forum/viewthread.php?tid=267 QPixmap是专门为绘图而生,当需要绘制图片时你需要使用QPixmap。QImage则是为I/O,为图片像素访问以及修改而设计的。如果你想访问图片的像素或是修改图片像素,则需要使用QImage,或者借助...

dizhi5320的博客 195

Qt QImage和QPixmap区别

2.QImage可以读取BMP、JPG、PNG 等格式的图片件,存储图像中所有像素的颜色数据。QImage的接口函数可以实现图像的缩放、旋转、镜翻转等简单处理,可以转换颜色数据格式。因为QImage可以读写图像中每个像素的颜色数掘所以结合图像处理算法,我们可以对图像进行各种处理,例如调整亮度、调整对比度、模糊处理等。1.QPixmap主要用于在界面上显示图像,它可以对图像进行缩放,可以加载BMP、JPG、PNG等格式的图片文件,然后在 OLabel组件上显示图像。

qq_38409301的博客 934

QImage::load()与QPixmap::load()的区别

最近在用QT编写用处理图片的代码的时候,遇到一个bug:我需要导入8bit深度的灰度图,然后对其图片数据进行处理,结果处理完之后会异常崩溃,后来发现问题出在用QPixmap.load()来导入图片。 QPixmap::load()导入图片的时候,如果图片本身就是彩色图的话就不会有问题,但是如果图片是8bit深的灰度图的话,在用QPixmap::load()的时候,图片会被自动转换成rgb图,那么其...

weixin_43935474的博客 4513

记录QImage和QPixmap一些区别

QImage对视频图像缓存的操作,查看以下构造函数: 观察以上构造可发现: 1. QImage可加载诸如RGB这样的像素数据 另外观察以下构造及成员函数: 观察以上可发现: 2. QImage也可加载jpg/png等这样的压缩数据 其中出现了两种format: (1)QImage::Format 此为像素级数据格式 (2)const char *format 此为字符串表示图像压缩格式 QPixmap可以理解为直接对压缩数据进行处理,查看构造及成员函数...

tiancai1912的博客 729
上一篇: QMatrix详解
下一篇: QPainter::end: Painter ended with 2 saved states 如何解决
低配天才
博客等级 码龄10年 277粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值