亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Opencv圖像處理之輪廓外背景顏色改變

 更新時(shí)間:2019年05月21日 15:00:36   作者:hihushine  
這篇文章主要為大家詳細(xì)介紹了Opencv圖像處理之輪廓外背景顏色改變,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Opencv輪廓外背景顏色改變的具體代碼,供大家參考,具體內(nèi)容如下

自行學(xué)習(xí)弄得簡單代碼,使用了圖像中的輪廓發(fā)現(xiàn)以及提取,再繪制出來,改變輪廓外的像素

首先,頭文件,寫的比較多,沒用的可以自己去除

#include <opencv2/core/core.hpp> 
#include<opencv2/highgui/highgui.hpp> 
#include"opencv2/imgproc/imgproc.hpp" 
#include <iostream>
#include <fstream>
#include <opencv2/opencv.hpp> 

//命名空間
using namespace cv;
using namespace std;
//圖片數(shù)據(jù)名字,原圖,灰度圖,二值圖,直方圖
Mat src,src_gray,dst,src_equ;
//聲明一個(gè)函數(shù),建立滑動(dòng)條
static void on_trackbar(int, void*);

主函數(shù)

int main(int argc, char** argv)
{
  //圖片讀入
  src = imread("D:\\PersonWork\\OpenCV\\program\\picture data\\0400.bmp");

  //判斷是否存在
  if (!src.data)
  {
    cout << "Image no find,error!" << endl;
  }

  //灰度轉(zhuǎn)換
  cvtColor(src,src_gray, CV_BGR2GRAY);

  //原圖窗口,顯示
  namedWindow("原圖", 0);
  imshow("原圖", src);

  //二值圖窗口
  namedWindow("二值圖", 0);

  // 滑動(dòng)條  
  int nThreshold = 120;
  createTrackbar("graybar", "二值圖", &nThreshold, 255,on_trackbar); 
  on_trackbar(nThreshold, 0);

  waitKey(0);
  destroyWindow("原圖");
  destroyWindow("二值圖");
  destroyWindow("result");
  return 0;
}

回調(diào)函數(shù)

static void on_trackbar(int pos, void*)
{

  //二值化
  threshold(src_gray, dst, pos, 255, CV_THRESH_BINARY);
  imshow("二值圖", dst);

  //直方均勻化
  equalizeHist(dst, src_equ);

  //識(shí)別輪廓
  vector<vector<Point>> contours;
  vector<Vec4i> hierarchy;
  findContours(src_equ, contours, hierarchy, CV_RETR_CCOMP, CV_CHAIN_APPROX_NONE);    

  //輪廓數(shù)量,可沒有
  //int len=contours.size();
  //cout<<len<<endl;

  //將圖拷貝,進(jìn)行遍歷圖片每個(gè)像素
  Mat secImg = src_gray.clone();
  const int np =secImg.rows * secImg.channels();
  const int nr = secImg.rows;
  for(int j=0;j<nr;j++){
    uchar *sdata = secImg.ptr<uchar>(j);
    for(int i=0;i<np;i++){

      //判斷是否在輪廓上或者外面,如果在便將像素變?yōu)?55,即白色,因?yàn)檫@里需要的是最外輪廓,所以為contours[0],如果還需要?jiǎng)e的,contours[i],i 可以取其他值
      if (pointPolygonTest(contours[0],Point(i,j),false) != 1)
        sdata[i]=255;
       }   
    }
  }

  //result窗口以及顯示結(jié)果
  namedWindow("result",0);
  imshow("result",secImg);

}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺談C++空間配置器allocator

    淺談C++空間配置器allocator

    在STL中,Memory Allocator處于最底層的位置,為一切的Container提供存儲(chǔ)服務(wù),是一切其他組件的基石。對于一般使用 STL 的用戶而言,Allocator是不可見的。本文將主要介紹C++空間配置器allocator
    2021-06-06
  • C語言實(shí)現(xiàn)計(jì)算樹的深度的方法

    C語言實(shí)現(xiàn)計(jì)算樹的深度的方法

    這篇文章主要介紹了C語言實(shí)現(xiàn)計(jì)算樹的深度的方法,針對數(shù)據(jù)結(jié)構(gòu)中樹進(jìn)行操作的方法,在算法設(shè)計(jì)中比較常見,需要的朋友可以參考下
    2014-09-09
  • C++計(jì)算任意權(quán)值的單源最短路徑(Bellman-Ford)

    C++計(jì)算任意權(quán)值的單源最短路徑(Bellman-Ford)

    這篇文章主要為大家詳細(xì)介紹了C++計(jì)算任意權(quán)值的單源最短路徑,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • Qt網(wǎng)絡(luò)編程之TCP通信及常見問題

    Qt網(wǎng)絡(luò)編程之TCP通信及常見問題

    這篇文章主要為大家詳細(xì)介紹了Qt網(wǎng)絡(luò)編程之TCP通信及常見問題,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C++調(diào)用Go方法的字符串傳遞問題及解決方案

    C++調(diào)用Go方法的字符串傳遞問題及解決方案

    這篇文章主要介紹了C++調(diào)用Go方法的字符串傳遞問題及解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • C語言運(yùn)用函數(shù)的遞歸實(shí)現(xiàn)漢諾塔

    C語言運(yùn)用函數(shù)的遞歸實(shí)現(xiàn)漢諾塔

    遞歸(recursive)函數(shù)是“自己調(diào)用自己”的函數(shù),無論是采用直接或間接調(diào)用方式。間接遞歸意味著函數(shù)調(diào)用另一個(gè)函數(shù)(然后可能又調(diào)用第三個(gè)函數(shù)等),最后又調(diào)用第一個(gè)函數(shù)。因?yàn)楹瘮?shù)不可以一直不停地調(diào)用自己,所以遞歸函數(shù)一定具備結(jié)束條件
    2022-07-07
  • C++實(shí)現(xiàn)堆排序?qū)嵗榻B

    C++實(shí)現(xiàn)堆排序?qū)嵗榻B

    大家好,本篇文章主要講的是C++實(shí)現(xiàn)堆排序?qū)嵗榻B,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • C 語言基礎(chǔ)教程(我的C之旅開始了)[四]

    C 語言基礎(chǔ)教程(我的C之旅開始了)[四]

    C 語言基礎(chǔ)教程(我的C之旅開始了)[四]...
    2007-02-02
  • 使用C語言操作文件的基本函數(shù)整理

    使用C語言操作文件的基本函數(shù)整理

    這篇文章主要介紹了使用C語言操作文件的基本函數(shù)整理,包括創(chuàng)建和打開以及關(guān)閉文件的操作方法,需要的朋友可以參考下
    2015-08-08
  • 深入C++中inline關(guān)鍵字的使用

    深入C++中inline關(guān)鍵字的使用

    本篇文章是對C++中inline關(guān)鍵字的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05

最新評論