برق، الکترونیک، الکتروتکنیک، مکاترونیک، پزشکی، کشاورزی

برق، الکترونیک، الکتروتکنیک، مکاترونیک، پزشکی، کشاورزی و

برق، الکترونیک، الکتروتکنیک، مکاترونیک، پزشکی، کشاورزی

برق، الکترونیک، الکتروتکنیک، مکاترونیک، پزشکی، کشاورزی و

داده هایی در مورد برق، الکترونیک، الکتروتکنیک، مکاترونیک، پزشکی، کشاورزی و

تبلیغات
آخرین نظرات

۲۱ مطلب با موضوع «نرم افزار :: پردازش تصویر» ثبت شده است

مراحل نصب کتابخانه opencv در لینوکس

ShahBaz | شنبه, ۲۰ آذر ۱۳۹۵، ۱۰:۲۸ ق.ظ

1- بسته های زیر را از طریق ترمینال نصب میکنیم.

sudo apt-get install build-essential

احتمالا روی سیستمتان از قبل نصب باشد و نیاز به دانلود چیزی نباشد
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

حدود 50 مگابایت دانلود می شود
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

حدود 60 مگابایت دانلود می شود

2- ایجاد پوشه با نام opencv در ریشه و رفتن به پوشه ساخته شده و سپس ایجاد پوشه جدید با نام build در آن.

sudo mkdir /opencv

cd /opencv

sudo mkdir build

cd build

3-

  • ShahBaz

بهترین نوع نور برای کارهای پردازش تصویر

ShahBaz | پنجشنبه, ۴ آذر ۱۳۹۵، ۱۰:۱۱ ب.ظ

فصلنامه دانش کشاورزی ، سال هجدهم، شماره 4 (پیاپی 72)



عنوان:
انتخاب بهترین منبع نوردهی برای کاربردهای بینایی ماشین


نویسنده(گان):
راضیه پوردربانی، حمیدرضا قاسم زاده، علی آقا گل زاده، حسین بهفر،

چکیده:
گرفتن تصویر با کیفیت بالا، اولین و مهمترین گام در کاربردهای بینایی ماشین است که نه تنها تابعی از ویژگیهای طیفی سطح شی است بلکه تابع توزیع طیفی نورپردازی و پاسخ طیفی دوربین عکسبرداری می باشد. از طرفی، نورپردازی ضعیف می تواند اثر تصنعی ایجاد کند، مثل سایه هایی که در تصویر بوجود می آید و باعث بوجود آمدن خطا در پردازش تصویر می شود. نورپردازی یکنواخت برای ایجاد تباین بین زمینه و موضوع حائز اهمیت است. هدف از این مطالعه، مقایسه منابع نور هالوژن، فلورسنت، LED و تابان، از لحاظ حساسیت به تغییرات ولتاژ و یکنواختی میدان دید دوربین بود. بهترین ولتاژ که در آن، تغییرات مقادیر RGB دارای کمترین تغییرات می باشند، در مورد هر چهار منبع با استفاده از روش آماری دانکن تعیین شد که برای منبع LED ولتاژ 10 ولت و برای سه منبع دیگر ولتاژ 130 ولت بدست آمد. سپس با استفاده از آزمون t، منابع LED و فلورسنت از نظر یکنواختی میدان دید دوربین با هم مقایسه شدند. ار آنجایی که منبع نور LED مقادیر واریانس کمتری نسبت به منبع فلورسنت دارا بود بنابراین در نهایت با توجه به تجزیه و تحلیل های آماری منبع نور LEDانتخاب شد.



کلیدواژگان:
بینایی ماشین ، پاسخ طیفی ، پردازش تصویری ، نورپردازی


لینک کوتاه به این صفحه:  

magiran.com/p618491

  • ShahBaz

کسکد و هار کسکد و شناسایی چهره و دیگر اجزای صورت

ShahBaz | جمعه, ۹ مهر ۱۳۹۵، ۱۱:۲۵ ق.ظ

   تشخیص اجسام با استفاده از الگوریتم Haar Cascade، یک روش بسیار موثر است که اولین بار توسط Paul Viola و Michael Jones در سال 2001 مطرح شد. این الگوریتم بر پایه یادگیری ماشین بوده و بدین صورت عمل می کند که با استفاده از تصاویری که چهره در آنها وجود دارد (تصاویر مثبت) و تصاویری که چهره در آنها وجود ندارد (تصاویر منفی) تابعی را آموزش می دهد تا بتواند مولفه هایی مانند وجود فاصله بین چشم ها را پیدا کند.

   این الگوریتم منحصر به تشخیص چهره نیست؛ و بیشتر یک آموزش دهنده است و می توان با آموزش دادن تابع دلخواه خودتان هر شی مانند ماشین، میز، مداد و ... را شناسایی کنید. OpenCV مجموعه ای از توابع از پیش آموزش دیده را برای تشخیص چهره، چشمان، لبخند و ... در خود دارد که می توان به سادگی از آنها استفاده کرد.

  • ShahBaz

اپن سی وی+ایکلیپس+ویندوز+سی میک+مینگ جی سی سی

ShahBaz | سه شنبه, ۳۰ شهریور ۱۳۹۵، ۰۶:۰۸ ب.ظ

In order to get a working OpenCV environment on Windows, we'll need the following tools:
  1. MinGW
  2. OpenCV
  3. Cmake
  4. Eclipse IDE
The following procedure was tested with these versions of the aforementioned tools, but should also work with other versions close to these:
- OS: Windows 10 Pro 
- MinGW (mingw-get version 0.6.2)
- OpenCV for Windows (v. 2.4.11)
- CMake for Windows (v. 3.3.1)
- Eclipse for C/C++ Developers (version: Mars Release 4.5.0)
 
Download, Install and Setup MinGW

 
 Download
Browse the official website for MinGW at mingw.org and click on "Download Installer" on the right. You'll be redirected on a sourceforge page where the executable file should begin downloading automatically.The file mingw-get-setup.exe is downloaded.
 
 Install
Run mingw-get-setup.exe and press "Install". 
Better leave the default Installation Directory to "C:\MinGW". Also better leave checked the following checkboxes as they are by default:
Then press "Continue". On the next screen just wait for it to download a few things and when it's done press "Continue".
A new window will appear. Select "Basic Setup" on the left side (probably selected by default) and mark for installation the packages "mingw32-base" and "mingw32-gcc-g++". These should be enough. 
Then click "Installation | Apply Changes". On the next screen press "Apply" again. Wait until it's done and then close all windows.
 
As a last step, we need to add the "C:\MinGW\bin" path to the PATH environment variable.
Go to "System | Advanced system settings | Environment Variables...", select the Path system variable and press "Edit...". At the end of the path add ";C:\MinGW\bin" (do not forget the semi-colon in front of C in order to separate it from the other paths). It should look something like this:
 
Then press "OK" on all windows opened, and you're done.
 

Download and Install OpenCV


 Download
Browse OpenCV's website at opencv.org/downloads.html and download "OpenCV for Windows". Here, we'll be using OpenCV version 2.4.11 as an example. The downloaded file should be opencv-2.4.11.exe (for the 2.4.11 version). 

 Install
Run opencv-2.4.11.exe. It will ask for a folder to extract OpenCV. I chose to extract under C:\. Select your extraction folder and click "Extract". 

After extraction "C:\opencv" contains the extracted files. Browse there with Windows Explorer. Inside there should be two folders named build and sources. Create another folder and name in "MinGW" (or anything else you want). We're gonna use this empty folder on a later step.

Download and Install CMake


 Download
Browse Cmake's website at www.cmake.org/download and click on the latest stable link. Look at Binary distributions and select the file that corresponds to Windows (Win32 Installer). As of now the file is cmake-3.3.1-win32-x86.exe.

 Install
Run the downloaded file and install it using all the default options selected.

 Setup
After installation run CMake (cmake-gui). Press the Browse Source button and navigate to "C:\opencv\sources" (if you installed OpenCV on a different path instead of right under C:\ as I did previously, then browse to that path and select the sources folder). 
Next, press Browse Build and select the folder we created under C:\opencv, which I named MinGW. So the path entered should be "C:\opencv\MinGW". 
Then, press Configure. This brings up a new dialog where you're asked to specify the generator for this project. I just select here "MinGW Makefiles" and leave the "Use default native compilers" selected. Then click on Finish. When it's done, press Generate. You'll see something like this, if succeed, and close cmake:

Open Command Prompt and go to "C:\opencv\MinGW". Then write: mingw32-make.
Wait until it reaches 100% and then close the prompt.

*Note: You may experience an error message during mingw32-make, like this:
If that happens, open Windows Explorer, go to "C:\MinGW\include" folder and find and open the file "commctrl.h". Find the lines on top of the file (probably lines 13-15) that look like this:
1
2
3
#if 0
#define _WIN32_IE 0x0300
#endif
Change these lines to:
1
2
3
#if 1
#define _WIN32_IE 0x0500
#endif
Save the file, and try again mingw32-make. This time it should work.

Finally add to the PATH environment variable the path "C:\opencv\MinGW\bin". Go to "System | Advanced system settings | Environment Variables...", select the Path system variable and press "Edit...". At the end of the path add ";C:\opencv\MinGW\bin" (do not forget the semi-colon in front of C in order to separate it from the other paths). It should look something like this now:

Download and Install Eclipse for C++ Developers

 Download
Browse to the download page of Eclipse's website eclipse.org/downloads and download Eclipse IDE for C/C++ Developers. Then extract the downloaded archive.
Note: To run Eclipse you need to have Java installed (Java JRE or JDK). Don't mix 32-bit versions of one tool with 64-bit versions of another, or errors may occur. Here, we've used the 32-bit versions of Java, Eclipse, MinGW, and CMake.

 Setup CDT Tools
Open eclipse and if it's the first time, specify a workspace folder where the projects will reside. Go to "Help | Install New Software..." and click on "Available Software Sites". A new dialog appears and make sure that the checkbox in front of CDT is checked and press OK. Then under Work with select "CDT  - http://download.eclipse.org/tools/cdt/releases/8.7". Check the "CDT Main Features" and press Next, then Next again, then accept the license agreements and press Finish.
Restart eclipse.


--
Next, we'll see how to setup a functioning OpenCV project with all the necessary dependencies, both in C++ and Java, using eclipse.
  • ShahBaz

مومنت در پردازش تصویر

ShahBaz | دوشنبه, ۲۲ شهریور ۱۳۹۵، ۰۵:۱۳ ب.ظ
  • ShahBaz

ذخیره چند عکس با اسامی مختلف از یک ویدیو

ShahBaz | دوشنبه, ۱۵ شهریور ۱۳۹۵، ۰۹:۰۱ ق.ظ

What did you expect this to do? You always write the same image called "images.jpg". You could simply achieve your task via stringstreams (#include <sstream>)

if (response==1)
{
    stringstream file;
    file << "image" << count_4 << ".jpg";
    count_4++;

    cv::imwrite(file.str(), pre_img);

}

If you want to write to a certain folder, you could try this. Im not 100% sure this works on windows. On linux it worked with the linux folder structure.

file << "D:\images\image" << count_4 << ".jpg";

You can use std::stringstream to build sequential file names:

First include the sstream header from the C++ standard library.

#include<sstream>

using namespace std;

Then inside your code, you can do the following:

stringstream ss;

string name = "cropped_";
string type = ".jpg";

ss<<name<<(ct + 1)<<type;

string filename = ss.str();
ss.str("");

imwrite(filename, img_cropped);

To create new folder, you can use windows' command mkdir in the system function from stdlib.h:

 string folderName = "cropped";
 string folderCreateCommand = "mkdir " + folderName;

 system(folderCreateCommand.c_str());

 ss<<folderName<<"/"<<name<<(ct + 1)<<type;

 string fullPath = ss.str();
 ss.str("");

 imwrite(fullPath, img_cropped);


کدهای خودم برای ذخیره متوالی چند عکس:

     #include<sstream>
      

      stringstream file;
      int z=0;

int main()

     vector<int> compression_params;
     compression_params.push_back(IMWRITE_PNG_COMPRESSION);

while (true)

        file << "Alef-" << z << ".png";
        imwrite(file.str(),imgLines,compression_params);
        z++;
        file.str("");
        //اگر خط بالا نباشد حرف الف-1 بعد از ذخیره عکس اول حذف نمیشود و عکس بعدی با عنوان
        //الف-1 الف-2 ذخیره میشود. یعنی پشت سرهم میافتند


از این کد به نظرم استفاده شود بهتر است:

     #include<sstream>     

      int z=0;

int main()

     vector<int> compression_params;
     compression_params.push_back(IMWRITE_PNG_COMPRESSION);

while (true)

      stringstream file;

        file << "Alef-" << z << ".png";
        imwrite(file.str(),imgLines,compression_params);
        z++;


  • ShahBaz

رابط گرافیکی اپن سی وی

ShahBaz | شنبه, ۱۳ شهریور ۱۳۹۵، ۰۶:۴۳ ب.ظ
  • ShahBaz

Create structuring element for morphological operations - getStructuringElement

ShahBaz | سه شنبه, ۹ شهریور ۱۳۹۵، ۱۰:۰۱ ق.ظ

Create structuring element for morphological operations

Mat getStructuringElement(int shape, Size ksize, Point anchor=Point(-1,-1))

Parameters:
  • shape – Element shape that could be one of the following:
    • MORPH_RECT (0) - a rectangular structuring element:
      E_{ij}=1
    • MORPH_ELLIPSE (2) - an elliptic structuring element, that is, a filled ellipse inscribed into the rectangle Rect(0, 0, esize.width, esize.height)
    • MORPH_CROSS (1)- a cross-shaped structuring element:
      E_{ij} =  \fork{1}{if i=\texttt{anchor.y} or j=\texttt{anchor.x}}{0}{otherwise}
    • CV_SHAPE_CUSTOM (100) - custom structuring element (OpenCV 1.x API)
  • ksize – Size of the structuring element.
  • cols – Width of the structuring element
  • rows – Height of the structuring element
  • anchor – Anchor position within the element. The default value (-1,-1) means that the anchor is at the center. Note that only the shape of a cross-shaped element depends on the anchor position. In other cases the anchor just regulates how much the result of the morphological operation is shifted.
The structuring element is required to be passed to createMorphologyFilter(), erode(), dilate() or morphologyEx().

You can also construct an arbitrary binary mask yourself and use it as the structuring element.

  Example:

--------------

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
 
using namespace cv;
using namespace std;
 
int main()
{
 
    // Create a structuring element (SE)
    int morph_size = 3;
    Mat element = getStructuringElement( MORPH_ELLIPSE, Size( 4*morph_size + 1, 2*morph_size+1 ), Point( morph_size, morph_size ) );
    cout<<element;
 
    return 0;
}

--------
  • ShahBaz