Select a region on mouse click

The following program allows the user to select a point on the image and extracts the region around that point, from which it extracts information such as mean and variance of the locality.

void setMouseCallback(const string& winname, MouseCallback onMouse, void* userdata=0 )
- Sets mouse handler for the specified window
Parameters:
  • winname – Window name
  • onMouse – Mouse callback.
  • userdata – The optional parameter passed to the callback.

Example:

-----------
#include "opencv2/opencv.hpp"
#include<cmath>
#include "iostream"

using namespace cv;
using namespace std;

int var1=1;
Point pos;
int radius = 7;

void CallBackFunc(int event, int x, int y, int flags, void* userdata)
{
    if  ( event == EVENT_LBUTTONDOWN )
    {
        pos.x=x;
        pos.y=y;
        var1=0;
    }
}


int main(int, char**)
{
    VideoCapture cap(0); // open the default camera
    if(!cap.isOpened())  // check if we succeeded
        return -1;

    namedWindow("Video",1);    
    int area = (2*radius+1)*(2*radius+1);
    
    Mat frame;        

    //select the region on the image
    while(var1==1)
    {
        //set the callback function for any mouse event
        setMouseCallback("Video", CallBackFunc, NULL);

        cap >> frame;         // get a new frame from camera
        //show the image
        imshow("Video", frame);

        // Wait until user press some key
        waitKey(10);    
    }
        
    GaussianBlur( frame, frame, Size( 15, 15 ), 0, 0 );imshow("blur",frame);
    Mat imgHSV,out;
    cvtColor(frame, imgHSV, CV_BGR2HSV);    imshow("HSV",imgHSV);
    Mat final;
    final = frame;

    float blue=0, green=0,red=0, b_var=0, g_var=0, r_var=0;
    for(int var2=pos.y-radius;var2<=pos.y+radius;var2++)
        for(int var3=pos.x-radius;var3<=pos.x+radius;var3++)
        {
            Vec3b intensity = final.at<Vec3b>(var2,var3);   
            blue = blue + intensity.val[0];
            green = green + intensity.val[1];
            red = red + intensity.val[2];
        }
    red=red/area; green=green/area; blue=blue/area;

    for(int var2=pos.y-radius;var2<=pos.y+radius;var2++)
        for(int var3=pos.x-radius;var3<=pos.x+radius;var3++)
        {
            Vec3b intensity = final.at<Vec3b>(var2,var3);   
            b_var = b_var + (intensity.val[0]-blue)*(intensity.val[0]-blue);
            g_var = g_var + (intensity.val[1]-green)*(intensity.val[1]-green);
            r_var = r_var + (intensity.val[2]-red)*(intensity.val[2]-red);
        }    
    
    r_var/=area; g_var/=area; b_var/=area;
    r_var=sqrt(r_var); g_var=sqrt(g_var); b_var=sqrt(b_var);
    cout<<red<<" "<<green<<"  "<<blue<<" "<<r_var<<" "<<g_var<<" "<<b_var;



    inRange(final,Scalar(blue-b_var,green-g_var,red-r_var),Scalar(blue+b_var,green+g_var,red+r_var),out);imshow("out",out);

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

6 comments:

  1. Compre documentos en línea, documentos originales y registrados.
    Acerca de Permisodeespana, algunos dicen que somos los solucionadores de problemas, mientras que otros se refieren a nosotros como vendedores de soluciones. Contamos con cientos de clientes satisfechos a nivel mundial. Hacemos documentos falsos autorizados y aprobados como Permiso de Residencia Español, DNI, Pasaporte Español y Licencia de Conducir Española. Somos los fabricantes y proveedores de primer nivel de estos documentos, reconocidos a nivel mundial.

    Comprar permiso de residencia,
    permiso de residenciareal y falso en línea,
    Compre licencia de conducir en línea,
    Compre una licencia de conducir española falsa en línea,
    Comprar tarjeta de identificación,
    Licencia de conducir real y falsa,
    Compre pasaporte real en línea,

    Visit Here fpr more information. :- https://permisodeespana.com/licencia-de-conducir-espanola/
    Address: 56 Guild Street, London, EC4A 3WU (UK)
    Email: contact@permisodeespana.com
    WhatsApp: +443455280186

    ReplyDelete
  2. طريقة العزل المائي للمسابح:
    القيام بالتنظيف الجيد للأرضية الخرسانية وإزالة أي شوائب بها.
    إضافة طبقة دهان ووترمين بارد عن طريق دهان الأرضية بها.
    القيام بإضافة طبقة البيتومينات ولحامها ولصقها بأرضية حمام السباحة ولصقها ببعضها من خلال التسخين بالكي.
    القيام بعمل طبقة تداخل بين الشريحتين المتجاورتين لا تقل عن ٢٠ سم.
    القيام بإضافة باقي طبقات لفائف البيتومين ولحامها ولصقها جيدا حتى يتم العزل المائي جيدا لأرضية وجدران حمام السباحة وخروج الطبقات عن جدران حمام السباحة بما لا يقل عن ٢٠ سم.
    القيام بعمل طبقة حماية للعزل المائي من الخدوش والثقوب عن طريق عمل طبقة لياسة من الأسمنت فوق طبقات العزل المائي.
    القيام بمعالجة اللياسة ثم تركها من يومين لثلاث أيام ليتم تجهيز اللبشة المسلحة.
    شركة إنشاء مسابح بالدمام
    شركة تنظيف مسابح بالدمام
    عزل مسابح

    ReplyDelete
  3. صيانة حمامات السباحة


    تكمن أهمية صيانة حمامات السباحة بشكلٍ دوري ومنتظم في حمايتها من التلوث، والتأكد من صلاحية المياه فيها، بحيث تكون آمنةً للسباحة فيها؛ وذلك لأن المياه في حمامات السباحة قد تحتوي على الكثير من الميكروبات مثل البكتيريا، والفيروسات، والطحالب، بحيث يمكن أن تُسبب العديد من المشاكل الصحية مثل التهاب المعدة والأمعاء، والتهابات الأذن والأنف، في حالة عدم صيانتها بشكلٍ صحيح.وفيما يأتي بعض النقاط المهمة التي يجب التركيز عليها للحفاظ على جودة المياه في حمامات السباحة:



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

    مستوى الرقم الهيدروجيني: يُستخدم الرقم الهيدروجيني لقياس درجة الحموضة أو القلوية للمياه في حمامات السباحة، وفي هذه الحالة يجب التأكد من أن تكون قيمة الرقم الهيدروجيني متراوحة بين 7 و 7.6، وهي القيمة المثالية والآمنة للمياه.

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

    ReplyDelete