使用Qt结合OPenCV编程,用户输入放大中心所在行, 确定图像放大中心后现实图像放大,代码应该怎么写
时间: 2023-05-14 16:05:25 浏览: 98
您可以使用以下代码实现:
```cpp
// include necessary headers
#include <opencv2/opencv.hpp>
#include <QtWidgets/QApplication>
#include <QtWidgets/QInputDialog>
using namespace cv;
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// load image
Mat image = imread("your_image.jpg");
// get image dimensions
int rows = image.rows;
int cols = image.cols;
// get user input for center row
int center_row = QInputDialog::getInt(nullptr, "Input Dialog", "Enter center row:");
// check if center row is within image bounds
if (center_row < 0 || center_row >= rows)
{
qDebug() << "Invalid center row!";
return -1;
}
// calculate top and bottom row indices for zoomed image
int top_row = std::max(0, center_row - rows / 4);
int bottom_row = std::min(rows - 1, center_row + rows / 4);
// create zoomed image
Mat zoomed_image = image(Rect(0, top_row, cols, bottom_row - top_row + 1));
// show zoomed image
imshow("Zoomed Image", zoomed_image);
waitKey(0);
return a.exec();
}
```
这个程序使用 Qt 库获取用户输入的中心行,然后使用 OpenCV 库对图像进行放大。具体来说,它计算出放大后图像的顶部和底部行索引,然后使用 `Rect` 函数从原始图像中提取相应的子图像。最后,它显示放大后的图像。
阅读全文