1. 程式人生 > >openCV實現影象邊緣檢測

openCV實現影象邊緣檢測

最近自己在做一個有關影象處理的小專案,涉及到影象的邊緣檢測、直線檢測、輪廓檢測以及角點檢測等,本文首先介紹影象的邊緣檢測,使用的是Canny邊緣檢測演算法,具體程式碼以及檢測效果如下:

1、程式碼部分:

// Image_Canny.cpp : 定義控制檯應用程式的入口點。
//

#include "stdafx.h"
#include <cv.h>
#include "highgui.h"
using namespace cv;

int _tmain(int argc, _TCHAR* argv[])
{
	Mat src_img=imread("..\\image_norm\\71253.jpg");
	imshow("src_img",src_img);
	Mat img_canny(src_img.size(),CV_8UC1,Scalar(0));
	//canny detect
	Canny(src_img,img_canny,100,300,3,true);
	imshow("img_canny",img_canny);
	imwrite("..\\post_img\\canny.jpg",img_canny);
	
	cvWaitKey(0);
	
	return 0;
}
2、原圖以及邊緣檢測效果圖:

至此,影象的邊緣檢測已經實現,在此記錄下來,也供初學者參考,最近一直在加班寫程式碼除錯程式碼,最大的感觸就是:程式碼因在不斷除錯中而愈加精緻。

相關推薦

openCV實現影象邊緣檢測

最近自己在做一個有關影象處理的小專案,涉及到影象的邊緣檢測、直線檢測、輪廓檢測以及角點檢測等,本文首先介紹影象的邊緣檢測,使用的是Canny邊緣檢測演算法,具體程式碼以及檢測效果如下: 1、程式碼部分: // Image_Canny.cpp : 定義控制檯應用程式的入口點

OpenCV使用Canny邊緣檢測器實現影象邊緣檢測

效果圖 原始碼 Canny邊緣檢測器是一種被廣泛使用的演算法,並被認為是邊緣檢測最優的演算法,該方法使用了比高斯差分演算法更復雜的技巧,如多向灰度梯度和滯後閾值化。 Canny

OpenCV高斯差分技術實現影象邊緣檢測

效果圖 原始碼 邊緣是影象中畫素亮度變化明顯的點。 高斯差分演算法步驟 將影象轉為灰度影象 // 原圖置灰 Imgproc.cvtColor(src, grayM

OpenCV 實現canny邊緣檢測

近期,整理了一些之前做過的影象處理內容,算是複習下基礎吧; 涉及canny邊緣檢測的OpenCV實現; 影象邊緣資訊主要集中在高頻段,通常說影象銳化或檢測邊緣,實質就是高頻濾波。Canny是常用的邊緣檢測方法,其特點是試圖將獨立邊的候選畫素拼裝成輪廓。 canny邊緣檢

邊緣檢測︱基於 HED網路TensorFlow 和 OpenCV 實現圖片邊緣檢測

. 一、邊緣檢測 1、傳統邊緣檢測 Google 搜尋 opencv scan document,是可以找到好幾篇相關的教程的,這些教程裡面的技術手段,也都大同小異,關鍵步驟就是呼叫 OpenCV 裡面的兩個函式,cv2.Canny() 和 c

opencv學習--opencv內的6種影象邊緣檢測演算法的實現

     如上篇部落格所述,影象邊緣檢測演算法主要有Sobel, Scarry, Canny, Laplacian,Prewitt, Marr-Hildresh,現在進行總結     1.Sobel運算元 Sobel運算元是主要用於邊緣檢測的離散微分運算元,它

opencv影象C語言實現canny邊緣檢測

1 ////////第四步:非極大值抑制 2 //注意事項 權重的選取,也就是離得近權重大 3 ///////////////////////////////////////////////////////////////// 4 IplImage * N;//非極大值抑制結果 5

影象邊緣檢測——幾種影象邊緣檢測運算元的學習及python 實現

  本文學習利用python學習邊緣檢測的濾波器,首先讀入的圖片程式碼如下: import cv2 from pylab import * saber = cv2.imread("construction.jpg") saber = cv2.cvtColor(saber,cv2.COLOR_BGR2RG

openCV—Python(11)—— 影象邊緣檢測

一、函式簡介 1、laplacian運算元 函式原型:Laplacian(src, ddepth, dst=None, ksize=None, scale=None, delta=None, borderType=None) src:影象矩陣 dde

影象邊緣檢測經典運算元及MATLAB實現

一、邊緣檢測 邊緣是圖象最基本的特徵. 邊緣檢測在計算機視覺、圖象分析等應用中起著重要的作用,是圖象分析與識別的重要環節,這是因為子圖象的邊緣包含了用於識別的有用資訊. 所以邊緣檢測是影象分析和模式識別的主要特徵提取手段。所謂邊緣是指其周圍畫素灰度後階變化或屋頂狀變化的

我的CUDA學習之旅4——Sobel運算元影象邊緣檢測CUDA實現

引言 關於影象邊緣檢測,記得剛開始接觸影象處理時,第一個自己實現的程式是通過筆記本攝像頭採集影象,利用OpenCV自帶的演算法庫進行Canny運算元邊緣檢測,那時候當看到程式執行後,視訊視窗實時顯示經Canny運算元邊緣分割後的影象,覺得十分有科技感,後來慢慢

OpenCV影象邊緣檢測(Laplace演算法)

一、Laplace演算法簡介   二階微分在亮的一邊是負的,在暗的一邊是正的。常數部分為零。可以用來確定邊的準確位置,以及畫素在亮的一側還是暗的一側。   拉普拉斯運算元是最簡單的各向同性微分運算元,具有旋轉不變性。一個二維影象函式 的拉普拉斯變換是各向同性

android studio 使用 jni 編譯 opencv 完整例項 之 影象邊緣檢測!從此在andrid中自由使用 影象匹配、識別、檢測

1 package io.github.froger.jni; 2 3 import android.app.Activity; 4 import android.graphics.Bitmap; 5 import android.graphics.drawable.BitmapDra

OpenCV影象處理入門學習教程四】基於LoG運算元的影象邊緣檢測

一、基於LoG運算元的影象邊緣檢測原圖:1.LoG運算元與自定義濾波運算元進行比較的結果:2.LoG運算元的結果:3.自定義3*31 1 1 1 -8 1 1 1 1 濾波結果:二、程式碼解析下面是一段基於LoG運算元的影象邊緣檢測的程式碼,同時會生成兩個結果,一個是LoG運算元的結果,第二個是自

opencv影象邊緣檢測

邊緣檢測檢測 &&邊緣檢測可以提取影象重要輪廓資訊,減少影象內容,可以用於分割影象,做特徵 提取 &&邊緣檢測的一般步驟 濾波——(濾出噪聲對檢測邊緣的影響) 濾高頻 增強——(可以將畫素鄰域強度變化凸顯出來–梯度運算元)

openCV實現影象的輪廓檢測以及外接矩形

前兩篇博文分別介紹了影象的邊緣檢測和輪廓檢測,本文接著介紹影象的輪廓檢測和輪廓外接矩形: 一、程式碼部分: // extract_contours.cpp : 定義控制檯應用程式的入口點。 // #include "stdafx.h" #include&

OpenCV影象處理】二十二、影象邊緣檢測(上)

→影象邊緣檢測的目的是檢測鄰域內灰度明顯變化的畫素,常用一階差分和二階差分來進行邊緣檢測 →數字影象中的邊緣是由鄰域內灰度值明顯變化的畫素構成,邊緣檢測主要是影象灰度的度量檢測和定位 →影象的邊緣有方向和幅值兩個屬性,沿邊緣方向畫素灰度值變化平緩或不發生變化,而垂直於邊緣方

Opencv學習之影象邊緣檢測

該部落格只為記錄點滴所學,若有誤導,還請大家原諒,並不吝賜教。          一直不太明白應用函式求導的方法能求出影象強度變化的邊緣,其實就是影象邊緣檢測。現在終於想通了,解釋如下。比如一張如下的圖片: 圖1 檢測邊緣可以檢測到狗和兔子的輪廓。因為它們的輪廓跟其周

OpenCV影象處理】二十三、影象邊緣檢測(下)

(1)Prewitt邊緣檢測運算元 →prewitt邊緣檢測運算元是另一種常用的一階邊緣檢測運算元,這個運算元對於噪聲有抑制的作用。 Prewittt邊緣檢測的原理和Sobel邊緣檢測類似,都是在影象空間利用兩個方向模板與影象進行鄰域卷積來完成的,分別對水平和垂直方向邊緣進

影象處理】Sobel運算元實現水平邊緣檢測、垂直邊緣檢測;45度、135度角邊緣檢測

%File Discription: %45°和135°角邊緣檢測;用於那些邊界不明顯的圖片 %不太適用於複雜圖,複雜圖用水平和垂直邊緣檢測 %Author:Zhang Ruiqing %CreateTime:2011.8.8(What a good day!(*^__^*)