qt 图像组合 图像变灰度 图像透明(转)
原文:https://editor.csdn.net/md?articleId=124823144
图像处理一般都是在opencv/vtk/itk/halcon里做的,qt用来显示
偶尔有很简单图像操作小需求,调用第三方库很麻烦,我这里记录下自己每次有需要临时写的
单纯qt对像素的操作简单的图像处理
只用qt实现彩色变灰度
for (int i = 0; i < srcImage.width(); i++) { for (int j= 0; j < srcImage.height(); j++) { QRgb color = srcImage.pixel(i, j); int gray = qGray(color); srcImage.setPixel(i, j, qRgba(gray, gray, gray, qAlpha(color))); } }
只用qt实现图像透明
baseImage = baseImage.convertToFormat(QImage::Format_ARGB32); union myrgb { uint rgba; uchar rgba_bits[4]; }; myrgb *mybits = (myrgb *) baseImage.bits(); qint32 len = baseImage.width() * baseImage.height(); while (len -- > 0) { mybits->rgba_bits[0] = 0; mybits->rgba_bits[1] = 0; mybits->rgba_bits[2] = (mybits->rgba == 0xFF000000) ? 0 : 255; mybits->rgba_bits[3] = (mybits->rgba == 0xFF000000) ? 0 : 255; mybits++; }
只用qt实现图像拼接
QImage imageWithOverlay = QImage(overlayImage.size(), QImage::Format_ARGB32_Premultiplied); QPainter painter(&imageWithOverlay); painter.fillRect(overlayImage.rect(), Qt::transparent); painter.drawImage(0, 0, baseImage); painter.drawImage(0, 0, overlayImage); painter.end(); overlayImage = imageWithOverlay;
只用qt实现差值缩放图片
full_screen->copy(x, y, w, h) .scaled(480, 480, Qt::KeepAspectRatio, Qt::SmoothTransformation) .save(file_path, "bmp");
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
2021-05-17 C++多线程编程:同步之互斥量Mutex
2021-05-17 C++多线程编程:同步之信号量 Semaphore
2021-05-17 vs 解决方案加载失败,无法读取项目文件“xxx.vcxproj”