2D Convolution / Creating new filter

OpenCV function filter2D is used to create new linear filters.

void filter2D(InputArray src, OutputArray dst, int ddepth, InputArray kernel, Point anchor=Point(-1,-1), double delta=0, int borderType=BORDER_DEFAULT )
Parameters:
  • src – input image.
  • dst – output image of the same size and the same number of channels as src.
  • ddepth – desired depth of the destination image; if it is negative, it will be the same as src.depth(); the following combinations of src.depth() and ddepth are supported:
    • src.depth() = CV_8U, ddepth = -1/CV_16S/CV_32F/CV_64F
    • src.depth() = CV_16U/CV_16S, ddepth = -1/CV_32F/CV_64F
    • src.depth() = CV_32F, ddepth = -1/CV_32F/CV_64F
    • src.depth() = CV_64F, ddepth = -1/CV_64F
    when ddepth=-1, the output image will have the same depth as the source.
  • kernel – convolution kernel (or rather a correlation kernel), a single-channel floating point matrix; if you want to apply different kernels to different channels, process them individually.
  • anchor – anchor of the kernel that indicates the relative position of a filtered point within the kernel; the anchor should lie within the kernel; default value (-1,-1) means that the anchor is at the kernel center.
  • delta – optional value added to the filtered pixels before storing them in dst.
  • borderType – pixel extrapolation method (see borderInterpolate() for details).
A kernel is a fixed size array of numerical coefficients along with an anchor point in that array.

The code provided below is slight modification of code provided in OpenCV documentation.

Steps:

  1. Load image
  2. Create a kernel to convolve with the input matrix ( here all elements of kernel is equal; so performs a low pass filter operation)
  3. Apply convolution (filter2D)
  4. Draw contours

Functions:


Example:

-------------
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <stdlib.h>
#include <stdio.h>

using namespace cv;

void conv2(Mat src, int kernel_size)
{
    Mat dst,kernel;
    kernel = Mat::ones( kernel_size, kernel_size, CV_32F )/ (float)(kernel_size*kernel_size);

    /// Apply filter
    filter2D(src, dst, -1 , kernel, Point( -1, -1 ), 0, BORDER_DEFAULT );
    namedWindow( "filter2D Demo", CV_WINDOW_AUTOSIZE );imshow( "filter2D Demo", dst );
}

int main ( int argc, char** argv )
{
    Mat src;

    /// Load an image
    src = imread( "1.jpg" );
    if( !src.data )  { return -1; }

    conv2(src,3);

    waitKey(0);
    return 0;
}
-------------

13 comments:

  1. this is not even correct... filter2D does not do convolutions, but rather correlation.

    ReplyDelete
    Replies
    1. It does, but most of the filters are symmetric. Hence the convolutions just look like correlation.

      Delete
  2. شركة تنظيف منازل بالجبيل
    يوجد العديد من شركات التنظيف المختلفة في الجبيل ولكننا نعد من أقوى الشركات الرائدة في مجالات التنظيف المختلفة بالمنازل حيث تشمل شركة تنظيف منازل بالجبيل على أقوى وسائل النظافة المختلفة وأحدث المعدات والتقينيات الحديثة وأجود انواع المساحيق والصابون والمنظفات الخاصة بالتنظيف في منازل وفلل وقصور ومكاتب وشركات ومؤسسات الجبيل بالجودة العالية وبأقل سعر ممكن.
    شركة تنظيف منازل بالجبيل
    قم باختيار الشركة المناسبة لنظافة منزلك وأنتبه من الشركات الأخرى التي تستخدم الوسائل التقليدية في تنظيف البلاط والسيراميك والأرضيات بالإضافة إلى إنها تستخدم مساحيق غير فعالة في التخلص من البقع الصعبة والتي لا جدوى منها وبالتالي فأنها تعطيك نتائج غير راضية لك ، ولكن عند إختيارك إلى شركة نظافة بالجبيل فإنها تعطي لك نتائج باهرة في النظافة حيث إنها تستخدم أقوى المعدات والاجهزة الحديثة في نظافة المنازل وتقوم على تنظيف الكنب والأرضيات وجلي البلاط وتلميع السيراميك بالإضافة إلى تنظيف السجاد والموكيت والستائر وكافة أثاث المنزل المختلفة.
    مميزات شركة شركة تنظيف بالجبيل
    تقوم على عمليات التنظيف من خلال إعتمادها على أمهر العمالة المدربة وعلى أيدي محترفين في مجالات النظافة المختلفة كما إنها تعتمد على المتخصصين في التنظيف الشامل بالجودة العالية حيث إنهم لديهم القدرة على كيفية إستخدام الأجهزة والماكينات الخاصة بالنظافة بالإضافة إلى تعليمهم لأستخدام أجهزة الشفط والغسيل للمجالس وأجهزة البخار التي تعمل على تنظيف الموكيت والسجاد أي أن الشركة تشمل على كافة المعدات اللازمة في النظافة مع توفير العمالة المدربة على أعلى مستوى.
    https://forsan-dmm.com/cleaning-company-in-jubail/
    لمزيد من خدماتنا
    شركة نظافة بالخبر

    ReplyDelete
  3. المثلث الذهبي لنقل العفش بالجبيل والمنطقة الشرقية والنظافة العامة للمساجد والفلل والمنازل شركة نقل عفش بالجبيل وكذلك شحن العفش الى مصر

    ReplyDelete
  4. The writers at our company have sufficient experience in creating high-quality Affordable Essay Writing Service and we always ensure that we provide quality Cheap Coursework Writing Service to all.

    ReplyDelete
  5. مواد العزل المائي المستخدمة من قبل شركات عزل الخزانات بالرياض:
    يستخدم العزل المائي بصفة أساسية في جميع المنشات المائية لضمان سلامة نوعية المياه والمنشأة الناقلة لها.

    اختلفت تسميات مواد العزل القديمة بين قار وقطران وزفت؛ أما القار والقطران فيستخرجان من زيوت أشجار الصنوبر أو الأرز أو الشجر المر، ويوجد الزفت على شكل بحيرات أو تجمعات سطحية في المناطق التي تحوي احتياطات نفطية

    من أنواع مواد العزل المائي المستخدم فى عزل الخزانات بالرياض:
    من مواد العزل المائي: الرقائق بمختلف أشكالها وسماكاتها، منها الزفتي والمرن والقماش غير المنسوج non- woven fabric على سبيل المثال لا الحصر. وهناك أيضاً بعض المواد التي تُضاف إلى الخرسانة أو الطينة الداخلية والخارجية والتي تؤدي إلى زيادة الكتامة.

    وتعدُّ طلاءات الحماية بأنواعها كافة وخصائصها من أهم أنواع العزل المائي. وتكوّن الرقائق من النسيج غير المحاك في تصميم الحماية المائية للطرقات السريعة والسكك الحديدية والأقنية والملاعب وغيرها.

    وتشكل الرقائق المدعمة بالألياف الزجاجية fiberglass والبوليستر عنصراً أساسياً في حماية السطوح الأخيرة للمنشآت والمباني السكنية.

    وتعد مادة الإيبوكسي epoxy بأنواعها من أهم المواد المستخدمة في حماية السطوح الداخلية في المنشآت الخاصة بالصناعات الدوائية والغذائية والكيمياوية، لما تتمتع به من مقاومة كيمياوية عالية وتوافق مع شروط السلامة الصحية والبيئية. أما الرقائق اللدنة فتستخدم بصفة أساسية عند تنفيذ أحواض النفايات، فضلاً عن استخدامها في السدود التجميعية والبحيرات الاصطناعية.

    ويولى العزل قدراً كبيراً من الاهتمام في المناطق الساحلية خاصة، إذ إنَّ التأثير المباشر للمياه المالحة يسبب الاهتراء السريع لمواد البناء التقليدية.

    ولا تقل متممات مواد العزل أهمية عن مواد العزل نفسها، وهي تتكون من مواد مطاطية ومعاجين خاصة لفواصل التمدد ومواد لاصقة لحماية أنواع العزل الحراري والصوتي والمائي ومواد التأسيس، إضافة إلى متممات التثبيت من براغٍ وأسافين ولفائف ومواد رابطة ولاصقة يتلاءم تركيبها مع مواد العزل الأساسية وتكوِّن معه النظام المتكامل للعزل المطلوب تنفيذه.

    ويجب أن تصنع هذه المنتجات من مواد ذات جودة عالية لتضمن عمل نظام العزل المستخدم وكفاءته وملاءمته لطبيعة استخدام المنشأة وعدم تسببها بتأثيرات سلبية في البيئة.
    شركة عزل خزانات بالجوف
    شركة عزل خزانات بصبيا
    شركة عزل خزانات بالرس
    شركة عزل خزانات بالدوادمي

    ReplyDelete
  6. Thanks to your tutorial on 2D Convolution and the new filters. Actually i am looking for some JPG to DST convertor.. Refer me if you have any. Thanks

    ReplyDelete

  7. الحشرات الضارة هي الحشرات التي تلحق الضرر بالإنسان وممتلكاتهم ومحاصيلهم ومواشيهم ، وتنتشر في جميع أنحاء العالم ، وقد تسبب الحشرات أضرارًا مباشرة ، أي بامتصاص دماء الكائنات الحية ، أو أكل أنسجتها ، أو بشكل غير مباشر ، عن طريق إزالتها. تنتقل مسببات الأمراض أو الطفيليات إلى الكائنات الحية ، وغالبًا ما يكون الضرر هو البالغين. وأحيانًا يكون الضرر في البالغين ويرقاتهم. قد تعمل هذه الحشرات بمفردها أو قد تهاجم في مجموعات. في أي حال ، يجب مكافحة الآفات والقضاء عليها لتجنب التسبب في ضرر
    شركة سما كلين لمكافحة الحشرات

    ReplyDelete
  8. สล็อตฝากถอนวอเลท เว็บไซต์ตรง ไม่ว่าผู้เล่นหรือนักเสี่ยงดวงท่านใดจะมีทุนกี่บาท ทุกคนก็สามารถลงทะเบียนสมัครสมาชิกเข้าใช้บริการพนัน pg สล็อตเว็บไซต์ตรงกับทางเว็บของพวกเราได้

    ReplyDelete