一种qt中遍历图片的方法 at 方式
面临的问题:
- qt中读入你想选取的图给Mat
- opencv的遍历
选取你想的文件用QFileDialog可以帮助完成。
如下图QString filename ;//QT的文件路径不能有中文,都5.9了这bug还在。
filename = QFileDialog::getOpenFileName(this,
tr("Open Image"), " ", tr("Image Files (*.png *.jpg *.bmp)"));
ui->screen->setPixmap (QPixmap(filename));
opencv的imread函数第一个参数是一个string类型的地址。但是上文的filename是QString类型的,需要转换一下。方法如下
img=imread(filename.toLatin1().data(),IMREAD_GRAYSCALE );
采用at方法遍历,同时还进行了其他操作,代码如下
for(int i=0;i<height-1;i++)
{
for(int j=0;j<width-1;j++)
{
if(i<300||i>2932) {img_erzhi.at<uchar>(i,j) =0;continue;}
if(j<300||j>4564) {img_erzhi.at<uchar>(i,j) =0;continue;}
if(img_erzhi.at<uchar>(i,j)>11) {img_erzhi.at<uchar>(i,j)=255;}
}
}
完整代码就不放了,没啥意思