69

“ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

Embed Size (px)

Citation preview

Page 1: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012
Page 2: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

Arm Programming & Image ProcessingLecture 2

Mohammad Amin Amjadi

Computer Department

Shahid Bahonar University

Fall 2012

Page 3: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

با استفاده از Armپردازش تصویر روی OpenCv:

یکی از اولین راهکارهایی که شاید به ذهنمان آمده باشد ، این است • Keil++ بوده اند را داخل cکه دستورات جلسه قبل را که به زبان

بنویسیم :

• #include “LPC23xx.h”

• #include “highghui.h”

• #include “cv.h”

• /* Continue */

Lecture 2 : Page 3

Page 4: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

استفاده نمود؟Keil در OpenCvچرا نمی توان بدینگونه از

: دلیل اول شناخته شده نیستند .Keil داخل OpenCvفایل های

هم مجبوریم که ابتدا این VisualStudioما حتی داخل کتابخانه را اضافه نمائیم .

Lecture 2 : Page 4

Page 5: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

استفاده نمود؟Keil در OpenCvچرا نمی توان بدینگونه از

: دلیل دوم فرق می کند و نمی تواند از VisualStudio با Keilگرامر

فایل هایی همچون فایلهایlib که برایVisualStudio نوشته شده اند پشتیبانی نماید

.

Lecture 2 : Page 5

Page 6: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

استفاده نمود؟Keil در OpenCvچرا نمی توان بدینگونه از

: دلیل سوم و ویژگی های آنرا ++C نمی تواند زبان Keilکامپایلر

پشتیبانی نماید ، بوده .++C به زبان OpenCvو این در حالی است که

Lecture 2 : Page 6

Page 7: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

استفاده نمود؟Keil در OpenCvچرا نمی توان بدینگونه از

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

ها ویندوز )سیستم عامل(وابسته اند .

Lecture 2 : Page 7

Page 8: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

استفاده نمود؟Keil در OpenCvچرا نمی توان بدینگونه از

: دلیل پنجمفایل های این کتابخانه به همراه سایر فایل های مورد

نیازش دارای حجم باالیی هستند .

نمائیم و از آن Include اگر یک فایل را Keil در کامپایلر هیچ استفاده ای ننمائیم در نظر گرفته نمی شود و لی اگر کوچکترین استفاده ای از آن شود تمام محتویات آنرا در

فایل خروجی قرار می دهد !!!

Lecture 2 : Page 8

Page 9: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

:tft Lcdحل مسئله پردازش تصویر با یادگیری در یک نگاه :Lcdتوابع

Lecture 2 : Page 9

Page 10: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

:tft Lcdحل مسئله پردازش تصویر با یادگیری یکی از مهم ترین توابع آن مربوط به نمایش عکس است :

void tftlcd_write_pic)int x0,int y0,const unsigned short *pointer(

بوده :hو ام�ا خود عکس :یک فایل .const unsigned short image0[] = {

240,320,0x768A,0x764A,0x6E28,0x5548,0x45AA,0x5D

88,0x5DA7,0x65A9,0x65AA,0x6E27,

//Continue ....}

Lecture 2 : Page 10

Page 11: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

:tft Lcdحل مسئله پردازش تصویر با یادگیری تبدیل شده است : h.و ام�ا یک عکس چگونه به فایل

const unsigned shortکافی اس�ت ک�ه ی�ک آرای�ه از ن�وع ایج�اد نم�وده و س�پس ط�ول و ع�رض عکس را در آن ق�رار آن ان�دازه ک�ه را نظ�ر م�ورد عکس آن از پع�د و ، دهیم ه�ر و نم�وده پیم�ایش را ب�وده نمایش�مان ص�فحه مناس�ب

تبدیل نموده و در آرایه قرار دهیم .Hexپیکسل را به کد #Cکه سورس ArGroupبرنامه

آن جلسه پیش تحویلتان داده شد و Hexتوانایی تبدیل عکس به فایل

بلعکس را دارد .

Lecture 2 : Page 11

Page 12: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

:tft Lcdحل مسئله پردازش تصویر با یادگیری بی�تی : ه�ر Hex : 24نح�وه تب�دیل رن�گ ی�ک پیکس�ل ب�ه فای�ل

بیت :8رنگ ی�ک پیکس�ل را پش�ت س�ر هم B و G و Rکافی اس�ت ک�ه

بذاریم :)Color)R=41,G=100,B=9مثالً :

R/8b

G/8b

B/8b

Color/24b

41 => 0x29100 => 0x649 => 0x09

0x296409

Lecture 2 : Page 12

Page 13: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

:tft Lcdحل مسئله پردازش تصویر با یادگیری بیتیHex : 16نحوه تبدیل رنگ یک پیکسل به فایل

ی�ک پیکس�ل را پش�ت س�ر هم B و G و Rکافی اس�ت ک�ه بذاریم :)Color)R=41,G=100,B=9مثالً :

41 => 00101001 b100 => 01100100 b9 => 00001001 b

0010101100100001b0x2B21Lecture 2 : Page 13

R/5b

G/6b

B/5b

Color/16b

Page 14: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

:tft Lcdحل مسئله پردازش تصویر با یادگیری : tft Lcdرنگها در

Lecture 2 : Page 14

tftlcd_functions.h

#define RED 0x001F#define GREEN 0x07E0#define BLUE 0xF800

0000000000011111

0000011111100000

1111100000000000

Mode BGR

Page 15: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

:tft Lcdحل مسئله پردازش تصویر با یادگیری :ArGroup و بلکعس با برنامه Hexتبدیل عکس به فایل

Lecture 2 : Page 15

Page 16: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

:tft Lcdحل مسئله پردازش تصویر با یادگیری فای�ل ب�ه عکس تب�دیل برنام�ه Hexتنظیم�ات بلکعس و

ArGroup:

Lecture 2 : Page 16

ب جنابجوا

در ...

.

س بنف

ماد با اعت

که

کامل

مدا آیا ع

د کهمودن

فر

رورنامه

ب

د ؟ه ای

ه نوشتشتبا

Page 17: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012
Page 18: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

به رنگ :Hex متد تبدیل کد public static Color ArCvShortToColor)int color, ArCvColorMode Mode( { int R, G, B; switch )Mode( { //… case ArCvColorMode.Rbg: R = )color & 63488( / 256; B = )color & 2016( / 8; G = )color & 31( * 8; break; /* Continue */Lecture 2 : Page 18

Page 19: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

:Armمبنای پردازش تصویر روی ک�افی اس�ت ک�ه ی�ک عکس Armبرای پ�ردازش تص�ویر روی

ذخ�یره نم�وده و س�پس ب�ا Arm تب�دیل و روی Hexرا ب�ه ک�د آوردن وبدس�ت نم�ودن آن�را BوGوRپیم�ایش پیکس�ل ه�ر

پردازش نموده .نم�ائیم و ک�دهایمان را در ... را تعری�ف ا چگون�ه رن�گ و ام��

Keilبنویسیم ؟

Lecture 2 : Page 19

Page 20: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

:Armبرنامه نویسی برای پردازش تصویر روی برای تعریف نمودن رنگ باید یک ساختار تعریف نمائیم :

struct ArCv_Color{

int Red;int Green;int Blue;

};

Keil

typedef struct{

int Red;int Green;int Blue;

}ArCv_Color;

Lecture 2 : Page 20

Page 21: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

:Armبرنامه نویسی برای پردازش تصویر روی :B و G و Rمتد ایجاد یک رنگ بر اساس مشخصه های

ArCv_Color New_ArCv_Color)int R , int G , int B({

ArCv_Color Color;if)R<0( R=0;if)G<0( G=0;if)B<0( B=0;if)R>255( R=255;if)G>255( G=255;if)B>255( B=255;

Color.Red=R;

Color.Green=G;

Color.Blue=B;return

Color;};

Lecture 2 : Page 21

Page 22: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

:Armبرنامه نویسی برای پردازش تصویر روی :Hexمتد تبدیل یک رنگ به کد

#define ArCv_Error -1int ArCv_Convert_ColorToRgbCode)ArCv_Color* Color({

if)Color({

int Rgb = Color->Blue / 8;Rgb *= 64; Rgb |= Color->Green / 4;Rgb *= 32;

Rgb |= Color->Red / 8;

return Rgb;}return

ArCv_Error;}

Lecture 2 : Page 22

Page 23: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

:Armبرنامه نویسی برای پردازش تصویر روی متد تبدیل کد رنگ به رنگ :

ArCv_Color ArCv_Convert_ShortToColor)int Rgb({

return New_ArCv_Color))Rgb & 31( * 8,)Rgb & 2016( / 8,)Rgb & 63488( / 256(;

//return New_ArCv_Color))Rgb & 0x1F( * 8,)Rgb & 0x7E0( / 8,)Rgb & 0xF800( / 256(;}

Lecture 2 : Page 23

Page 24: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

:Armبرنامه نویسی برای پردازش تصویر روی تعریف ساختاری برای طیف رنگ :

typedef struct {

ArCv_Color Start;ArCv_Color End;

}ArCv_ColorRange;

Lecture 2 : Page 24

Page 25: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

:Armبرنامه نویسی برای پردازش تصویر روی تعریف متدی برای ایجاد نمودن یک طیف رنگ :

ArCv_ColorRange New_ArCv_ColorRange)int R1,int G1,int B1,int R2,int G2,int B2({

ArCv_ColorRange Range;Range.Start.Red=R1;Range.Start.Green=G1;Range.Start.Blue=B1;

Range.End.Red=R2;

Range.End.Green=G2;

Range.End.Blue=B2;return Range;

}Lecture 2 : Page 25

Page 26: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

:Armبرنامه نویسی برای پردازش تصویر روی تعریف ساختاری برای عکس :

typedef struct{

const unsigned short *imageData; }ArCv_Image;

Lecture 2 : Page 26

Page 27: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

:Armبرنامه نویسی برای پردازش تصویر روی تعریف متدی برای ایجاد عکس :

ArCv_Image New_ArCv_Image)const unsigned short * Img({

ArCv_Image Image;Image.imageData=Img;return Image;

}

Lecture 2 : Page 27

Page 28: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

:Armبرنامه نویسی برای پردازش تصویر روی متد خواندن طول عکس :

int ArCv_Image_Width)ArCv_Image Image({

if)&Image({

return Image.imageData[0];}return ArCv_Error;

}

Lecture 2 : Page 28

Page 29: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

:Armبرنامه نویسی برای پردازش تصویر روی متد خواندن عرض عکس :

int ArCv_Image_Height)ArCv_Image Image({

if)&Image({

return Image.imageData[1];}return ArCv_Error;

}

Lecture 2 : Page 29

Page 30: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

:Armبرنامه نویسی برای پردازش تصویر روی متد خواندن کد رنگ یک پیکسل از عکس :

int ArCv_Image_GetRgbCode)ArCv_Image Image , int x , int y({

return Image.imageData[)y*Image.imageData[1](+x+2];}

Lecture 2 : Page 30

Page 31: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

:Armبرنامه نویسی برای پردازش تصویر روی متد خواندن رنگ یک پیکسل از عکس :

ArCv_Color ArCv_Image_GetColor)ArCv_Image Image , int x , int y({

if)&Image({

return ArCv_Convert_ShortToColor)Image.imageData[)y*Image.imageData[0](+x+2](;

}else{

return ArCv_Null_Color;}

}Lecture 2 : Page 31

Page 32: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012
Page 33: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

: فیلتر : سیاه و سفید: یکArmپردازش تصویر روی void ArCv_Filter_BW_R)ArCv_Image Image({

ArCv_Color Color,c;int i,j;for)i=0;i<ArCv_Image_Width)Image(;i++({

for)j=0;j<ArCv_Image_Height)Image(;j++({

Color = ArCv_Image_GetColor)Image,i,j(;c=New_ArCv_Color)Color.Red,Color.Red,Color.Red(;tftlcd_write_pixel)i,j,ArCv_Convert_ColorToRgbCode)&c((;

}}

}

Lecture 2 : Page 33

Page 34: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012
Page 35: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

: فیلتر : سیاه و سفید : دوArmپردازش تصویر روی void ArCv_Filter_BW_G)ArCv_Image Image({

ArCv_Color Color,c;int i,j;for)i=0;i<ArCv_Image_Width)Image(;i++({

for)j=0;j<ArCv_Image_Height)Image(;j++({

Color = ArCv_Image_GetColor)Image,i,j(;c=New_ArCv_Color)Color.Green,Color.Green,Color.Green(;tftlcd_write_pixel)i,j,ArCv_Convert_ColorToRgbCode)&c((;

}}

}

Lecture 2 : Page 35

Page 36: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012
Page 37: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

: فیلتر : سیاه و سفید : سهArmپردازش تصویر روی void ArCv_Filter_BW_B)ArCv_Image Image({

ArCv_Color Color,c;int i,j;for)i=0;i<ArCv_Image_Width)Image(;i++({

for)j=0;j<ArCv_Image_Height)Image(;j++({

Color = ArCv_Image_GetColor)Image,i,j(;c=New_ArCv_Color)Color.Blue,Color.Blue,Color.Blue(;tftlcd_write_pixel)i,j,ArCv_Convert_ColorToRgbCode)&c((;

}}

}

Lecture 2 : Page 37

Page 38: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012
Page 39: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012
Page 40: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

: فیلتر : مکمل نمودنArmپردازش تصویر روی void ArCv_Filter_Inverse)ArCv_Image Image({

ArCv_Color Color,c;int i,j;for)i=0;i<ArCv_Image_Width)Image(;i++({

for)j=0;j<ArCv_Image_Height)Image(;j++({

Color = ArCv_Image_GetColor)Image,i,j(;c=New_ArCv_Color)255-Color.Red,255-Color.Green,255-

Color.Blue(;tftlcd_write_pixel)i,j,ArCv_Convert_ColorToRgbCode)&c((;

}}

}

Lecture 2 : Page 40

Page 41: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012
Page 42: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

: فیلتر : تغییر مشخه های رنگیArmپردازش تصویر روی

void ArCv_Filter_ChangeTo_GBR)ArCv_Image Image({

ArCv_Color Color,c;int i,j;for)i=0;i<ArCv_Image_Width)Image(;i++({

for)j=0;j<ArCv_Image_Height)Image(;j++({

Color = ArCv_Image_GetColor)Image,i,j(;c=New_ArCv_Color)Color.Green,Color.Blue,Color.Red(;tftlcd_write_pixel)i,j,ArCv_Convert_ColorToRgbCode)&c((;

}}

}

Lecture 2 : Page 42

Page 43: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012
Page 44: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

: فیلتر : تغییر شدت نور : یکArmپردازش تصویر روی

void ArCv_Filter_Contrast)ArCv_Image Image,int Co({

ArCv_Color Color,c;int i,j;for)i=0;i<ArCv_Image_Width)Image(;i++({

for)j=0;j<ArCv_Image_Height)Image(;j++({

Color = ArCv_Image_GetColor)Image,i,j(;

c=New_ArCv_Color)Color.Red+Co,Color.Green+Co,Color.Blue+Co(;tftlcd_write_pixel)i,j,ArCv_Convert_ColorToRgbCode)&c((;

}}

}

Lecture 2 : Page 44

Page 45: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

: فیلتر : تغییر شدت نور : دوArmپردازش تصویر روی

void ArCv_Filter_Contrast_RGB)ArCv_Image Image,int CoR,int CoG,int CoB({

ArCv_Color Color,c;int i,j;for)i=0;i<ArCv_Image_Width)Image(;i++({

for)j=0;j<ArCv_Image_Height)Image(;j++({

Color = ArCv_Image_GetColor)Image,i,j(;

c=New_ArCv_Color)Color.Red+CoR,Color.Green+CoG,Color.Blue+CoB(;tftlcd_write_pixel)i,j,ArCv_Convert_ColorToRgbCode)&c((;

}}

}

Lecture 2 : Page 45

Page 46: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

: فیلتر : تغییر شدت نور : سهArmپردازش تصویر روی

void ArCv_Filter_Contrast_Range)ArCv_Image Image,int Low,int High,int CoR,int CoG,int CoB({

ArCv_Color Color,c;int i,j;int v;for)i=0;i<ArCv_Image_Width)Image(;i++({

for)j=0;j<ArCv_Image_Height)Image(;j++({

Color = ArCv_Image_GetColor)Image,i,j(;v=)Color.Red+Color.Green+Color.Blue(/3;if) v >= Low && v<=High({

c=New_ArCv_Color)Color.Red+CoR,Color.Green+CoG,Color.Blue+CoB(;}Lecture 2 : Page 46

Page 47: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

: فیلتر : تغییر شدت نور : سهArmپردازش تصویر روی

else{

c=New_ArCv_Color)Color.Red,Color.Green,Color.Blue(;}tftlcd_write_pixel)i,j,ArCv_Convert_ColorToRgbCode)&c((;

}}

}

Lecture 2 : Page 47

Page 48: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

: فیلتر : تغییر شدت نور : چهارArmپردازش تصویر روی

void ArCv_Filter_Contrast_Range_RGB)ArCv_Image Image,int Low,int High,int Co({

ArCv_Color Color,c;int i,j;int v;for)i=0;i<ArCv_Image_Width)Image(;i++({

for)j=0;j<ArCv_Image_Height)Image(;j++({

Color = ArCv_Image_GetColor)Image,i,j(;v=)Color.Red+Color.Green+Color.Blue(/3;if) v >= Low && v<=High({

c=New_ArCv_Color)Color.Red+Co,Color.Green+Co,Color.Blue+Co(;}

Lecture 2 : Page 48

Page 49: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

: فیلتر : تغییر شدت نور : چهارArmپردازش تصویر روی

else{

c=New_ArCv_Color)Color.Red,Color.Green,Color.Blue(;}tftlcd_write_pixel)i,j,ArCv_Convert_ColorToRgbCode)&c((;

}}

}

Lecture 2 : Page 49

Page 50: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012
Page 51: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

: فیلتر : قرمز و قهوه ایArmپردازش تصویر روی void ArCv_Filter_ColorTone_Sepia)ArCv_Image Image({

ArCv_Color Color,c;int i,j;for)i=0;i<ArCv_Image_Width)Image(;i++({

for)j=0;j<ArCv_Image_Height)Image(;j++({

Color = ArCv_Image_GetColor)Image,i,j(;c=New_ArCv_Color)))Color.Red + Color.Green +

Color.Blue( / 3( +40 , ))Color.Red + Color.Green +

Color.Blue( / 3( -10 ,))Color.Red + Color.Green +

Color.Blue( / 3( -70(;tftlcd_write_pixel)i,j,ArCv_Convert_ColorToRgbCode)&c((;

}}

}

Lecture 2 : Page 51

Page 52: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012
Page 53: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

رنگی نمودن16 : فیلتر : Armپردازش تصویر روی void ArCv_Filter_ColorTone_16Color)ArCv_Image Image({

ArCv_Color Color,c;int i,j,r,g,b;for)i=0;i<ArCv_Image_Width)Image(;i++({

for)j=0;j<ArCv_Image_Height)Image(;j++({

Color = ArCv_Image_GetColor)Image,i,j(;r=Color.Red;g=Color.Green;b=Color.Blue;

Lecture 2 : Page 53

Page 54: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

رنگی نمودن16 : فیلتر : Armپردازش تصویر روی if )r > 0 && r < 128( r = 0;else if )r > 128 && r < 192( r = 128;else if )r > 192 && r < 255( r = 192;

if )g > 0 && g < 128( g = 0;else if )g > 128 && g < 192( g = 128;else if )g > 192 && g < 255( g = 192;

if )b > 0 && b < 128( b = 0;else if )b > 128 && b < 192( b = 128;else if )b > 192 && b < 255( b = 192;c=New_ArCv_Color)r,g,b(;tftlcd_write_pixel)i,j,ArCv_Convert_ColorToRgbCode)&c((;

}}

}

Lecture 2 : Page 54

Page 55: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012
Page 56: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

: فیلتر : تار نمودن تصویرArmپردازش تصویر روی void ArCv_Filter_Blur)ArCv_Image Image,int VcI,int VcJ({

ArCv_Color Color,c,c1;int i,j;for)i=VcI;i<ArCv_Image_Width)Image(;i++({

for)j=VcJ;j<ArCv_Image_Height)Image(;j++({

Color = ArCv_Image_GetColor)Image,i,j(;c1 = ArCv_Image_GetColor)Image,i-VcI,j-VcJ(;c=New_ArCv_Color))Color.Red+c1.Red(/2,

)Color.Green+c1.Green(/2,)Color.Blue+c1.Blue(/2(;tftlcd_write_pixel)i,j,ArCv_Convert_ColorToRgbCode)&c((;

}}

}

Lecture 2 : Page 56

Page 57: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

: کشف : تشخیص رنگ : یکArmپردازش تصویر روی

#define IsFound 1#define NotFound 0int ArCv_Detection_ColorDetection)ArCv_Image Image,ArCv_Color StartRange,ArCv_Color EndRange,int x,int y({

ArCv_Color Color = ArCv_Image_GetColor)Image,x,y(;if)Color.Red >= StartRange.Red && Color.Red <= EndRange.Red&& Color.Green >= StartRange.Green && Color.Green <=

EndRange.Green&& Color.Blue >= StartRange.Blue && Color.Blue <= EndRange.Blue({

return IsFound;}return NotFound;

}

Lecture 2 : Page 57

Page 58: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

: کشف : تشخیص رنگ : دوArmپردازش تصویر روی

int ArCv_Detection_RangeColorDetection)ArCv_Image Image,ArCv_ColorRange Range,int x,int y({

ArCv_Color Color = ArCv_Image_GetColor)Image,x,y(;if)Color.Red >= Range.Start.Red && Color.Red <= Range.End.Red&& Color.Green >= Range.Start.Green && Color.Green <=

Range.End.Green&& Color.Blue >= Range.Start.Blue && Color.Blue <= Range.End.Blue({

return IsFound;}return NotFound;

}

Lecture 2 : Page 58

Page 59: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

: کشف : تشخیص رنگ : سهArmپردازش تصویر روی

int ArCv_Detection_FindRangeColorDetection)ArCv_Image Image,ArCv_ColorRange Range({

int i,j;for)i=0;i<ArCv_Image_Width)Image(;i++({

for)j=0;j<ArCv_Image_Height)Image(;j++({

if)ArCv_Detection_RangeColorDetection)Image,Range,i,j(==IsFound({

return IsFound;}

}}return NotFound;

}Lecture 2 : Page 59

Page 60: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

: کشف : تشخیص رنگ : چهارArmپردازش تصویر روی

int ArCv_Detection_AllFindRangeColorDetection)ArCv_Image Image,ArCv_ColorRange Range,ArCv_Color NewColor({

int flag=NotFound;ArCv_Color Color;int i,j;for)i=0;i<ArCv_Image_Width)Image(;i++({

for)j=0;j<ArCv_Image_Height)Image(;j++({

Color = ArCv_Image_GetColor)Image,i,j(;if)Color.Red >= Range.Start.Red && Color.Red <=

Range.End.Red&& Color.Green >= Range.Start.Green &&

Color.Green <= Range.End.Green&& Color.Blue >= Range.Start.Blue && Color.Blue

<= Range.End.Blue({

tftlcd_write_pixel)i,j,ArCv_Convert_ColorToRgbCode)&NewColor((;flag=IsFound;

}}

}return

flag;}

Lecture 2 : Page 60

Page 61: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

: کشف : تشخیص رنگ : پنجArmپردازش تصویر روی

int ArCv_Detection_AllFindRangeColorDetection_Inverse)ArCv_Image Image,ArCv_ColorRange Range({

int flag=NotFound;ArCv_Color Color,c;int i,j;for)i=0;i<ArCv_Image_Width)Image(;i++({

for)j=0;j<ArCv_Image_Height)Image(;j++({

Color = ArCv_Image_GetColor)Image,i,j(;if)Color.Red >= Range.Start.Red && Color.Red <=

Range.End.Red&& Color.Green >= Range.Start.Green &&

Color.Green <= Range.End.Green&& Color.Blue >= Range.Start.Blue && Color.Blue

<= Range.End.Blue(Lecture 2 : Page 61

Page 62: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

: کشف : تشخیص رنگ : پنجArmپردازش تصویر روی

{c=New_ArCv_Color)255-Color.Red,255-

Color.Green,255-Color.Blue(;

tftlcd_write_pixel)i,j,ArCv_Convert_ColorToRgbCode)&c((;flag=IsFound;

}}

}return flag;

}

Lecture 2 : Page 62

Page 63: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012
Page 64: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

: کشف : لبه یابیArmپردازش تصویر روی void ArCv_Detection_Edge)ArCv_Image Image,int Vc({

int i,j;ArCv_Color c,c1;tftlcd_fill)0x0(;for)i=0;i<ArCv_Image_Height)Image(-1;i++({

for)j=0;j<ArCv_Image_Width)Image(-1;j++({

c=ArCv_Image_GetColor)Image,i,j(;c1=ArCv_Image_GetColor)Image,i,j+1(;if)c.Red>c1.Red+Vc ||

c1.Red>c.Red+Vc || c.Green>c1.Green+Vc ||

c1.Green>c.Green+Vc || c.Blue>c1.Blue+Vc ||

c1.Blue>c.Blue+Vc (Lecture 2 : Page 64

Page 65: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

: کشف : لبه یابیArmپردازش تصویر روی {

tftlcd_write_pixel)i,j,0xFFFF(;continue;

}c1=ArCv_Image_GetColor)Image,i+1,j(;if)c.Red>c1.Red+Vc ||

c1.Red>c.Red+Vc || c.Green>c1.Green+Vc ||

c1.Green>c.Green+Vc || c.Blue>c1.Blue+Vc ||

c1.Blue>c.Blue+Vc ({

tftlcd_write_pixel)i,j,0xFFFF(;}

}}

}Lecture 2 : Page 65

Page 66: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

تا جلسه آینده : کار کردن با کدهای پردازش تصویر رویArmوتصحیح آنها کار کردن باtftLcd تحقیق در مورد چگونگی باالبردن سرعت پردازش تصویر و

بهبود کدهای آن

Lecture 2 : Page 66

Page 67: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

در جلسات آینده :چگونگی افزایش سرعت پردازش تصویر چگونگی پردازش عکس و اطالعاتی که از یک دستگاه جنبی

FingerPrintهمانند دوربین و بدست می آید

نصب سیستم عامل رویArm هدر نویسی و ماژوالر نویسیکار کردن با پورت سریال در سی شارپ و سی پالس پالس ارتباط میکروکنترلر و کامپیوتر از طریقuart

Lecture 2 : Page 67

Page 68: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

سواالت ؟جلسه آینده ؟شیوه مطالب و نحوه ارائه ؟

Lecture 2 : Page 68

و ام�ا ....

Page 69: “ ” Arm Programming & Image Processing Lecture 2 Mohammad Amin Amjadi Computer Department Shahid Bahonar University Fall 2012

امیرالمؤمنین علی

)ع( :

بهترین همت ها

بلندترین آنهاست .Lecture 2 : Page 69