QT5.8使用opencv打开图像窗口大小根据图像自适应调节
2017-05-09 16:59
309 查看
Opencv 使用自带窗口打开图像会由于图片太大产生 尺寸过大超过屏幕分辨率现象,由此设计解决方法如下,主要使用了opencv的
namedWindow()函数和resizeWindow()函数。
注意:
1.namedWindow(fileName.toStdString(),CV_WINDOW_NORMAL);//
CV_WINDOW_NORMAL为窗口大小策略,不可以更改为自动尺寸,否则图像不会根据窗口缩放。
2.resizeWindow()函数必须在图像显示之后设置,即namedWindow()和imshow()之后。
void MainWindow::on_action_2_triggered()
{
QString fileName = QFileDialog::getOpenFileName(this,tr("Open Image"),".",tr("Image Files (*.png *.jpg *.bmp)"));
qDebug()<<"filenames:"<<fileName;
char str_size[100] = {};
if (!fileName.isNull())
{
image = imread(fileName.toStdString());
if (image.empty())
{
ui->label->setText("Can not find image!");
}
else
{
//if(image.size().width > 1000 && 1000.0*image.size().height/image.size().width < 1024)
// ui->label_image->resize(1000,(int)1000.0*image.size().height/image.size().width);
//else if(1000.0*image.size().height/image.size().width >= 1024)
// ui->label_image->resize((int)1000.0*image.size().width/image.size().height , 1000);
//else
// ui->label_image->resize(image.size().width,image.size().height);
displayImage(image);
namedWindow(fileName.toStdString(),CV_WINDOW_NORMAL);
imshow(fileName.toStdString(),image);
if(image.size().width > 1000 && 1000.0*image.size().height/image.size().width < 1024)
resizeWindow(fileName.toStdString(),1000,(int)1000.0*image.size().height/image.size().width);
else if(1000.0*image.size().height/image.size().width >= 1024)
resizeWindow(fileName.toStdString(),(int)1000.0*image.size().width/image.size().height , 1000);
else
resizeWindow(fileName.toStdString(),image.size().width,image.size().height);
sprintf(str_size,"Size:%d*%d,Channel:%d",image.size().width,image.size().height,image.channels());
ui->label->setText(QString(str_size));
}
}
else
{
qDebug()<<"file is empty";
}}
相关文章推荐
- Qt实现图像自适应窗口大小之scaled()函数使用
- Qt实现图像自适应窗口大小之scaled()函数使用
- Camshift原理 camshift利用目标的颜色直方图模型将图像转换为颜色概率分布图,初始化一个搜索窗的大小和位置,并根据上一帧得到的结果自适应调整搜索窗口的位置和大小,从而定位出当前图像中目标的
- Qt 根据Label大小无形变的自适应居中显示图像
- Qt图片自适应窗口控件大小(使用setScaledContents)
- MFC 窗口最大化和最小化,全局变量的使用、static居中显示、static的背景色设置为透明、根据屏幕自适应调整界面大小
- 设置竖直的分割符【使用div】 (根据屏幕的大小自适应)
- ASP 打开页面自适应窗口大小最大化
- Qt图片自适应窗口控件大小
- Qt图片自适应窗口控件大小
- OpenCV鼠标控制窗口大小(使用1.0vison)
- Qt基础——让使用Designer创建的UI也能自动适应窗口大小
- 使用JQuery控制iframe自适应窗口大小
- opencv--用鼠标动态改变显示图像窗口大小
- 使用Qt+OpenCV+VideoInput 显示摄像头图像
- Qt基础——让使用Designer创建的UI也能自动适应窗口大小
- Qt基础——让使用Designer创建的UI也能自动适应窗口大小
- Qt基础——让使用Designer创建的UI也能自动适应窗口大小
- Qt基础——自适应窗口大小
- js使用showModalDialog,弹出一个自适应大小窗口