Qt creator5.7 OpenCV249之形态学处理(含源码下载)
生活随笔
收集整理的這篇文章主要介紹了
Qt creator5.7 OpenCV249之形态学处理(含源码下载)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
形態學處理-morphologyEx 運算
void cv::morphologyEx(
InputArray src,
OutputArray dst,
int op,
InputArray Kernel,
Point anchor=Point(-1,-1),
int iteration=1,
int borderType=BORDER_CONSTANT,
const Scalar& borderValue=morphologyDefaultBorderValue()
)
這里面的op
op-操作類型,各種形態學運算的操作規則:將腐蝕和膨化進行結合得到
下面給出一個表
下面給出關于形態學的代碼
void MainWindow::on_erode_triggered() {//定義形狀int morph_elem=cv::MORPH_RECT;//定義大小int morph_size=3;//調用getStructuringElementcv::Mat element=cv::getStructuringElement(morph_elem,cv::Size(2*morph_size+1,2*morph_size+1),cv::Point(morph_size,morph_size));//調用morphologyEx函數cv::morphologyEx(srcImage,dstImage,cv::MORPH_ERODE,element);//顯示img=QImage((const unsigned char*)(dstImage.data),dstImage.cols,dstImage.rows,dstImage.cols*dstImage.channels(),QImage::Format_RGB888);img=img.scaled(ui->label_2->size());ui->label_2->setPixmap(QPixmap::fromImage(img)); }void MainWindow::on_dilate_triggered() {//定義形狀int morph_elem=cv::MORPH_RECT;//定義大小int morph_size=3;//調用getStructuringElementcv::Mat element=cv::getStructuringElement(morph_elem,cv::Size(2*morph_size+1,2*morph_size+1),cv::Point(morph_size,morph_size));//調用morphologyEx函數cv::morphologyEx(srcImage,dstImage,cv::MORPH_DILATE,element);//顯示img=QImage((const unsigned char*)(dstImage.data),dstImage.cols,dstImage.rows,dstImage.cols*dstImage.channels(),QImage::Format_RGB888);img=img.scaled(ui->label_2->size());ui->label_2->setPixmap(QPixmap::fromImage(img)); }void MainWindow::on_open_triggered() {//定義形狀int morph_elem=cv::MORPH_RECT;//定義大小int morph_size=3;//調用getStructuringElementcv::Mat element=cv::getStructuringElement(morph_elem,cv::Size(2*morph_size+1,2*morph_size+1),cv::Point(morph_size,morph_size));//調用morphologyEx函數cv::morphologyEx(srcImage,dstImage,cv::MORPH_OPEN,element);//顯示img=QImage((const unsigned char*)(dstImage.data),dstImage.cols,dstImage.rows,dstImage.cols*dstImage.channels(),QImage::Format_RGB888);img=img.scaled(ui->label_2->size());ui->label_2->setPixmap(QPixmap::fromImage(img)); }void MainWindow::on_close_triggered() {//定義形狀int morph_elem=cv::MORPH_RECT;//定義大小int morph_size=3;//調用getStructuringElementcv::Mat element=cv::getStructuringElement(morph_elem,cv::Size(2*morph_size+1,2*morph_size+1),cv::Point(morph_size,morph_size));//調用morphologyEx函數cv::morphologyEx(srcImage,dstImage,cv::MORPH_CLOSE,element);//顯示img=QImage((const unsigned char*)(dstImage.data),dstImage.cols,dstImage.rows,dstImage.cols*dstImage.channels(),QImage::Format_RGB888);img=img.scaled(ui->label_2->size());ui->label_2->setPixmap(QPixmap::fromImage(img)); }void MainWindow::on_gradient_triggered() {//定義形狀int morph_elem=cv::MORPH_RECT;//定義大小int morph_size=3;//調用getStructuringElementcv::Mat element=cv::getStructuringElement(morph_elem,cv::Size(2*morph_size+1,2*morph_size+1),cv::Point(morph_size,morph_size));//調用morphologyEx函數cv::morphologyEx(srcImage,dstImage,cv::MORPH_GRADIENT,element);//顯示img=QImage((const unsigned char*)(dstImage.data),dstImage.cols,dstImage.rows,dstImage.cols*dstImage.channels(),QImage::Format_RGB888);img=img.scaled(ui->label_2->size());ui->label_2->setPixmap(QPixmap::fromImage(img)); }void MainWindow::on_tophat_triggered() {//定義形狀int morph_elem=cv::MORPH_RECT;//定義大小int morph_size=3;//調用getStructuringElementcv::Mat element=cv::getStructuringElement(morph_elem,cv::Size(2*morph_size+1,2*morph_size+1),cv::Point(morph_size,morph_size));//調用morphologyEx函數cv::morphologyEx(srcImage,dstImage,cv::MORPH_TOPHAT,element);//顯示img=QImage((const unsigned char*)(dstImage.data),dstImage.cols,dstImage.rows,dstImage.cols*dstImage.channels(),QImage::Format_RGB888);img=img.scaled(ui->label_2->size());ui->label_2->setPixmap(QPixmap::fromImage(img)); }void MainWindow::on_blackhat_triggered() {//定義形狀int morph_elem=cv::MORPH_RECT;//定義大小int morph_size=3;//調用getStructuringElementcv::Mat element=cv::getStructuringElement(morph_elem,cv::Size(2*morph_size+1,2*morph_size+1),cv::Point(morph_size,morph_size));//調用morphologyEx函數cv::morphologyEx(srcImage,dstImage,cv::MORPH_BLACKHAT,element);//顯示img=QImage((const unsigned char*)(dstImage.data),dstImage.cols,dstImage.rows,dstImage.cols*dstImage.channels(),QImage::Format_RGB888);img=img.scaled(ui->label_2->size());ui->label_2->setPixmap(QPixmap::fromImage(img)); } 下面給出程序源碼打包下載:http://download.csdn.net/detail/qq78442761/9735279
下面是程序運行
下面是開運算和形態學階梯
總結
以上是生活随笔為你收集整理的Qt creator5.7 OpenCV249之形态学处理(含源码下载)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WEB安全基础-SQL注入演示
- 下一篇: WEB安全基础-Javascrp相关知识