易网时代-编程资源站
Welcome
微信登录
编程资源
图片资源库
蚂蚁家优选
PDF转换器
软件资源
软件开发
、
小程序制作
、
系统集成与运维
、
空间租用
、
硬件开发
、
视频监控
、
技术咨询与支持
——联系电话:0311-88999002/88999003
首页
/
操作系统
/
Linux
/
Qt+OpenCV设置图片通道颜色
Qt+OpenCV设置图片通道颜色源代码:
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(
new
Ui::Widget)
{
ui->setupUi(
this
);
cvNamedWindow(
"jdh1"
,CV_WINDOW_AUTOSIZE);
cvNamedWindow(
"jdh2"
,CV_WINDOW_AUTOSIZE);
img1 = cvLoadImage(
"test.jpg"
);
img2 = cvLoadImage(
"test.jpg"
);
cvShowImage(
"jdh1"
,img1);
cvShowImage(
"jdh2"
,img2);
}
Widget::~Widget()
{
delete
ui;
cvReleaseImage(&img1);
cvReleaseImage(&img2);
cvDestroyAllWindows();
}
void
Widget::on_pushButton_clicked()
{
QString red = ui->lineEdit->text();
QString green = ui->lineEdit_2->text();
QString blue = ui->lineEdit_3->text();
int
temp = 0;
for
(
int
y = 0;y < img2->height;y++)
{
unsigned
char
*ptr = (unsigned
char
*)(img2->imageData + y * img2->widthStep);
unsigned
char
*ptr1 = (unsigned
char
*)(img1->imageData + y * img1->widthStep);
for
(
int
x = 0;x < img2->width;x++)
{
bool
ok;
//蓝色设置
temp = blue.toInt(&ok,10);
if
(ok)
{
ptr[3 * x + 0] = temp;
}
else
{
ptr[3 * x + 0] = ptr1[3 * x + 0];
}
//绿色设置
temp = green.toInt(&ok,10);
if
(ok)
{
ptr[3 * x + 1] = temp;
}
else
{
ptr[3 * x + 1] = ptr1[3 * x + 1];
}
//红色设置
temp = red.toInt(&ok,10);
if
(ok)
{
ptr[3 * x + 2] = temp;
}
else
{
ptr[3 * x + 2] = ptr1[3 * x + 2];
}
}
}
cvShowImage(
"jdh2"
,img2);
}
效果:
收藏该网址
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图