ﺑﻪ ﻧﺎم ﺧﺪا ﺑﺮﻧﺎﻣﻪ ﺳﺎزي ﭘﻴﺸﺮﻓﺘﻪ داﻧﺸﻜﺪه م.ﻛﺎﻣﭙﻴﻮﺗﺮ ،داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ ﭘﺮوژه ﻣﻴﺎن ﺗﺮم ﺟﺎوا زﻣﺎن ﺗﺤﻮﻳﻞ 15 :اردي ﺑﻬﺸﺖ 86 ﭘﺮوژه ﺧﻮد را ﺗﺎ ﻧﻴﻤﻪ ﺷﺐ زﻣﺎن ﺗﺤﻮﻳﻞ ﺑﻪ آدرس اي-ﻣﻴﻞ درس ارﺳﺎل ﻧﻤﺎﻳﻴﺪ. [email protected] proj1-StudentID ﺗﻮﺿﻴﺤﺎت ﻣﻮرد ﻧﻴﺎز *proj1.zip| proj1.rar| proj1.tar. email subject Body Attachment ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﻲ داﻧﻴﺪ ﻫﺮ ﺗﺼﻮﻳﺮ از ﻣﺠﻤﻮﻋﻪ اي از ﭘﻴﻜﺴﻞ ﻫﺎ ﺗﺸﻜﻴﻞ ﺷﺪه اﺳﺖ .ﻫﺮ ﭘﻴﻜﺴﻞ ﺣﺪاﻗﻞ 5 ﻣﺸﺨﺼﻪ ﻋﺪدي دارد .ﺷﺎﻣﻞ ﻃﻮل و ﻋﺮض ﻧﻘﻄﻪ و رﻧﮓ آن ) ﺷﺎﻣﻞ 3ﭘﺎراﻣﺘﺮ r,g,bﻣﻌﺮف رﻧﮓ ﺑﺎﻧﺪ ﻗﺮﻣﺰ ،ﺳﺒﺰ و آﺑﻲ( .ﻳﻚ ﻓﻴﻠﺘﺮ را ﺑﻪ اﻳﻦ ﺻﻮرت ﺗﻌﺮﻳﻒ ﻣﻲ ﻛﻨﻴﻢ .ﻓﻴﻠﺘﺮ ﻣﺠﻤﻮﻋﻪ اي ﺷﺎﻣﻞ 3ﺗﺎﺑﻊ 5ﭘﺎراﻣﺘﺮي ﻣﻲ ﺑﺎﺷﺪ .ﺑﻪ ﺻﻮرﺗﻲ ﻛﻪ ﺑﻪ ازاي ﻫﺮ ﭘﻴﻜﺴﻞ ﺑﺎ ﻃﻮل x,yﺧﻮاﻫﻴﻢ داﺷﺖ: )Pr' = f1(Px, Py, Pr, Pg, Pb )Pg' = f1(Px, Py, Pr, Pg, Pb )Pb' = f1(Px, Py, Pr, Pg, Pb ﻫﺪف اﻳﻦ ﭘﺮوژه اﻳﻦ اﺳﺖ ﻛﻪ ﻳﻚ ﺗﺼﻮﻳﺮ ورودي را ﺗﺤﺖ ﻓﻴﻠﺘﺮ ﺗﻌﺮﻳﻒ ﺷﺪه از ﺳﻮي ﻛﺎرﺑﺮ ﺗﺒﺪﻳﻞ ﻧﻤﺎﻳﻴﺪ. ﺑﻪ اﻳﻦ ﻣﻨﻈﻮر اﺑﺘﺪا ﻣﻲ ﺑﺎﻳﺴﺖ از روي ﻳﻚ ﻓﺎﻳﻞ ورودي 1ﻳﻚ ﺗﺼﻮﻳﺮ را ﺧﻮاﻧﺪه و ﺑﺮ روي ﺻﻔﺤﻪ ﻧﻤﺎﻳﺶ ﻣﻲ دﻫﻴﺪ .ﺳﭙﺲ ﺑﺎﻳﺪ ﺳﻪ ﻓﺮﻣﻮل 5ﭘﺎراﻣﺘﺮي x,y,r,g,bرا از ﻛﺎرﺑﺮ ﮔﺮﻓﺘﻪ و ﻫﺮ ﻳﻚ را ﺑﺮاي ﻳﻜﻲ از ﺳﻪ رﻧﮓ ﻗﺮﻣﺰ-آﺑﻲ و ﺳﺒﺰ ﻣﻮﺟﻮد در ﻫﺮ ﭘﻴﻜﺴﻞ اﻋﻤﺎل ﻛﻨﻴﺪ و ﻧﺘﺎﻳﺞ را ﻧﻤﺎﻳﺶ دﻫﻴﺪ. ﻣﺜﻼ ﻓﻴﻠﺘﺮ Pr' = 0 Pg' = g Pb' = b رﻧﮓ ﻗﺮﻣﺰ ﺗﺼﻮﻳﺮ را ﺣﺬف ﻣﻲ ﻛﻨﺪ ﻳﺎ ﻓﻴﺘﻠﺮ )Pr' = 256*sin(x Pg' = r+g Pb' = y ﺑﺮﺣﺴﺐ ﻃﻮل ﭘﻴﻜﺴﻞ ﻣﻴﺰان رﻧﮓ ﻗﺮﻣﺰ را ﺑﻪ ﻃﻮر ﻣﺘﻨﺎوب ﺗﻐﻴﻴﺮ ﻣﻲ دﻫﺪ .ﺷﺪت رﻧﮓ ﺳﺒﺰ را ﺑﺎ ﺑﺮاﺑﺮ رﻧﮓ ﻗﺮﻣﺰ ﻗﺮار ﻣﻲ دﻫﺪ و ﺑﺮ ﺣﺴﺐ ﻋﺮض ﻧﻘﻄﻪ ﺷﺪت رﻧﮓ آﺑﻲ را ﻳﻜﻨﻮاﺧﺖ ﻣﻲ ﻛﻨﺪ. 1ﺑﺮﻧﺎﻣﻪ ﺷﻤﺎ ﻣﻲ ﺑﺎﻳﺴﺖ ﺣﺪاﻗﻞ از ﻓﺮﻣﺖ ﻓﺎﻳﻞ bmpﭘﺸﺘﻴﺒﺎﻧﻲ ﻛﻨﺪ .در ﺻﻮرﺗﻲ ﻛﻪ از ﺑﺴﺘﻪ ﻫﺎي ﭘﻴﺸﺮﻓﺘﻪ ﻣﺜﻞ JAIاﺳﺘﻔﺎده ﻣﻲ ﻛﻨﻴﺪ ﭘﺸﺘﻴﺒﺎﻧﻲ از دﻳﮕﺮ ﻓﺮﻣﺖ ﻫﺎي ﺗﺼﻮﻳﺮي ﻣﺰﻳﺘﻲ ﻧﺨﻮاﻫﺪ داﺷﺖ. ﺗﻮﺟﻪ ﻛﻨﻴﺪ ﻛﻪ ﺑﺎزه ﻣﻮرد ﻗﺒﻮل ﺑﺮاي ﻫﺮ ﻳﻚ از ﻃﻴﻒ ﻫﺎ از 0ﺗﺎ 255ﻣﻲ ﺑﺎﺷﺪ .ﭘﺲ اﻋﺪاد ﻣﻨﻔﻲ را ﺑﺮاﺑﺮ ﻫﻤﺎن ﺻﻔﺮ و اﻋﺪاد ﺑﻴﺶ از 255را ﺑﺮاﺑﺮ 255ﻗﺮار دﻫﻴﺪ .ﺗﻮﺻﻴﻪ ﻣﻲ ﻛﻨﻴﻢ اﻳﻦ روﻧﺪ را در ﻃﻲ ﻳﻚ ﻓﺮاﻳﻨﺪ Exception Handlingاﻧﺠﺎم دﻫﻴﺪ. ﻧﻤﻮﻧﻪ ﻫﺎي ﺑﻴﺸﺘﺮي از ﻓﻴﻠﺘﺮ ﻫﺎ در ﺿﻤﻴﻤﻪ آﻣﺪه اﺳﺖ. ﺗﻮﺟﻪ ﻛﻨﻴﺪ: • ﻫﺮ داﻧﺸﺠﻮ ﻣﻲ ﺑﺎﻳﺴﺖ ﭘﺮوژه ﺧﻮد را ﺑﻪ ﺻﻮرت ﻣﺴﺘﻘﻞ و ﺗﻨﻬﺎ اﻧﺠﺎم دﻫﺪ .در ﺻﻮرت وﺟﻮد ﺷﺒﺎﻫﺖ ﻫﺎي ﺑﻴﺶ از اﻧﺪازه در ﺑﻴﻦ دو ) ﻳﺎ ﭼﻨﺪ ( ﭘﺮوژه ﻫﻤﻪ اﻓﺮاد درﮔﻴﺮ دﭼﺎر ﻛﺴﺮ ﻧﻤﺮه ﺧﻮاﻫﻨﺪ ﺷﺪ. • از آﻧﺠﺎﻳﻲ ﻛﻪ ﻫﺰﻳﻨﻪ ﻛﺸﻴﺪن ﺣﺘﻲ ﻳﻚ ﭘﻴﻜﺴﻞ ﺑﺮ روي deviceﺑﺴﻴﺎر زﻳﺎد اﺳﺖ ﺑﺎ ﺑﺎﻓﺮ ﻛﺮدن ﺗﺼﻮﻳﺮﺗﺎن ) در ﻣﻘﺎﺑﻞ ﭘﺮدازش ( real-timeﺳﺮﻋﺖ اﺟﺮاي ﺑﺮﻧﺎﻣﻪ ﺧﻮد را ﺗﺎ ﺟﺎي ﻣﻤﻜﻦ ﺑﺎﻻ ﺑﺒﺮﻳﺪ. • ﺑﺮاي ﻛﺸﻴﺪن ﺗﺼﻮﻳﺮ ﻫﺎ ﻣﺠﺎز ﻣﻲ ﺑﺎﺷﻴﺪ ﻛﻪ از ﭘﻜﻴﺞ ﻫﺎي ﺧﻮد ﺟﺎوا ) ﻣﺎﻧﻨﺪ ﻛﻼس ﻫﺎي درون java.awtﺑﻪ ﺧﺼﻮص Graphics2Dو Imageو ﻳﺎ ﺑﺴﺘﻪ Java Advace Imaging JAIﻛﻪ ﺷﺮﻛﺖ sunﺑﻪ ﺻﻮرت ﻣﺠﺰا از j2SEاﻳﺠﺎد ﻛﺮده اﺳﺖ ( اﺳﺘﻔﺎده ﻛﻨﻴﺪ ﻳﺎ اﻳﻦ ﻛﻪ ﺧﻮدﺗﺎن ﻛﻼس ﻣﻨﺎﺳﺐ را ﺑﺮاي ﺧﻮد ﺑﻨﻮﻳﺴﻴﺪ اﻣﺎ ﺑﻪ ﻫﻴﭻ ﻋﻨﻮان ﻣﺠﺎز ﺑﻪ اﺳﺘﻔﺎده از ﻛﻼس ﻫﺎي ﺷﺨﺺ/ﺷﺮﻛﺖ ﺛﺎﻟﺚ در ﺑﺮﻧﺎﻣﻪ ﺗﺎن ﻧﻤﻲ ﺑﺎﺷﻴﺪ. • ﺑﺮاي ﻧﻮﺷﺘﻦ ﭘﺎرﺳﺮ رﻳﺎﺿﻲ ﻣﻤﻜﻦ اﺳﺖ ﺧﻮدﺗﺎن آﻧﺮا ﻣﺴﺘﻘﻴﻤﺎٌ ﭘﻴﺎده ﺳﺎزي ﻛﻨﻴﺪ وﻟﻲ ﺗﻮﺻﻴﻪ ﻣﻲ ﻛﻨﻴﻢ از ﻛﻼس Compilerﻣﻮﺟﻮد در JDK 6اﺳﺘﻔﺎده ﻛﻨﻴﺪ. • ﻓﺮﻣﻮل ﻫﺎي وارد ﺷﺪه از ﺳﻮي ﻛﺎرﺑﺮ ﻣﻲ ﺗﻮاﻧﺪ ﺷﺎﻣﻞ ﻋﻤﻠﻴﺎت ﺳﺎده رﻳﺎﺿﻲ ) ^ ( + - * /و ﻋﻤﻠﻴﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺗﺮ ) ﻣﺎﻧﻨﺪ ( sin, cos, tan, atnﺑﺎﺷﺪ • ﺑﺮﻧﺎﻣﻪ ﺷﻤﺎ ﺑﺎﻳﺪ از ﻳﻚ ﻣﻌﻤﺎري ﻣﻨﻈﻢ و ﻣﻨﻄﻘﻲ ﺷﻴﻲ ﮔﺮا ﭘﻴﺮوي ﻧﻤﺎﻳﺪ .ﺑﺨﺸﻲ از ﻧﻤﺮه ﺷﻤﺎ ﺑﻪ اﻳﻦ ﻣﻬﻢ اﺧﺘﺼﺎص ﺧﻮاﻫﺪ ﻳﺎﻓﺖ .ﺑﻪ ﻋﻼوه ﺑﺮﻧﺎﻣﻪ ﺷﻤﺎ ﺑﺎﻳﺪ exceptionﻫﺎ را ) ﺑﻪ ﺧﺼﻮص در ﻗﺴﻤﺖ ﻣﺮﺑﻮط ﺑﻪ ﭘﺎرﺳﺮ و ﻳﺎ ﻓﺎﻳﻞ ( ﺑﻪ وﺟﻪ ﻣﻨﺎﺳﺒﻲ handleﻧﻤﺎﻳﺪ. • راﺑﻂ ﻛﺎرﺑﺮي ﻣﻨﺎﺳﺐ ﻧﻴﺰ ﻣﻬﻢ ﻣﻲ ﺑﺎﺷﺪ .ﺗﻮﺻﻴﻪ ﻣﻲ ﻛﻨﻴﻢ ﺑﺮاي راﺑﻂ ﻛﺎرﺑﺮي از ﺑﺴﺘﻪ javax.swingاﺳﺘﻔﺎده ﻧﻤﺎﻳﻴﺪ .ﺑﺮاي آﺷﻨﺎﻳﻲ ﺑﺎ آن ﻣﻲ ﺗﻮاﻧﻴﺪ از ﻛﻼس ﻫﺎي ﺣﻞ ﺗﻤﺮﻳﻦ ﻳﺎ swing tutorialﻛﻤﻚ ﺑﮕﻴﺮﻳﺪ .ﻣﺤﻴﻂ ﻫﺎي ﺗﻮﺳﻌﻪ ﺧﻮب ﻣﺎﻧﻨﺪ NetBeansﭘﺸﺘﻴﺒﺎﻧﻲ و ﺗﻌﺎﻣﻞ ﺧﻮﺑﻲ ﺑﺎ swingدارﻧﺪ. • ﺑﺮاي ﭘﺮدازش ﺗﺼﺎوﻳﺮ ،ﻋﻼوه ﺑﺮ ﺳﻴﺴﺘﻢ رﻧﮓ RGBﻣﻲ ﺗﻮان از ﺳﻴﺴﺘﻢ 2 LHSﻧﻴﺰ اﺳﺘﻔﺎده ﻛﺮد. اﻳﻦ دو ﺳﻴﺴﺘﻢ ﺑﻪ راﺣﺘﻲ ﻗﺎﺑﻞ ﺗﺒﺪﻳﻞ ﺑﻪ ﻳﻜﺪﻳﮕﺮ ﻫﺴﺘﻨﺪ و از ﻃﺮﻓﻲ ﻋﻤﻠﻴﺎﺗﻲ ﻣﺎﻧﻨﺪ روﺷﻦ ﻳﺎ ﺗﺎرﻳﻚ و ﻣﺎت ﻛﺮدن ﺗﺼﻮﻳﺮ در LHSﺳﺎده ﺗﺮ اﺳﺖ .ﭘﻴﺎده ﺳﺎزي ﭘﺮدازش LHSدر ﺑﺮﻧﺎﻣﻪ ﺗﺎن ﻣﺸﻤﻮل ﻧﻤﺮه اﺿﺎﻓﻲ ﻣﻲ ﺑﺎﺷﺪ. • ﭘﻴﺎده ﺳﺎزي ﺗﻌﺪادي از ﻓﻴﻠﺘﺮ ﻫﺎي ﻛﻼﺳﻴﻚ ﻣﺎﻧﻨﺪ Blur, Sharpenو ، emboss noiseو ﻓﻴﻠﺘﺮ ﻫﺎي ) ﭘﺎﻳﻴﻦ،ﻣﻴﺎن و ﺑﺎﻻ( ﮔﺬر ،و ﻳﺎ ﻓﻴﻠﺘﺮ ﻫﺎي ﺟﺎﻟﺐ ﻧﻴﺰ ﻣﺸﻤﻮل ﻧﻤﺮه اﺿﺎﻓﻲ ﺑﻴﺸﺘﺮي ﺧﻮاﻫﺪ ﺑﻮد. Lighting, Hue, Saturation 2 • ﻣﺎﺷﻴﻦ ﻣﺠﺎزي ﻛﻪ ﺑﺮﻧﺎﻣﻪ ﺷﻤﺎ را ﺗﺴﺖ ﺧﻮاﻫﺪ ﻛﺮد ﻣﻄﺎﺑﻖ ﺑﺎ J2SE 6ﻣﻲ ﺑﺎﺷﺪ .ﺑﻨﺎﺑﺮ اﻳﻦ از اﺳﺘﻔﺎده از دﻳﮕﺮ ﻛﻤﭙﺎﻳﻠﺮ ﻫﺎي ﺟﺎوا ﻣﺎﻧﻨﺪ gcjﺟﺪا ﭘﺮﻫﻴﺰ ﻛﻨﻴﺪ. • در اﻧﺘﻬﺎ ﻛﻠﻴﻪ ﻓﺎﻳﻞ ﻫﺎي ﺳﻮرس ﭘﺮوژه ﺧﻮد را ﺑﻪ ﻫﻤﺮاه ﻳﻚ ﻓﺎﻳﻞ اﺳﻜﺮﻳﭙﺖ ﻛﻪ آﻧﻬﺎ را ﻛﻤﭙﺎﻳﻞ و اﺟﺮا ﻣﻲ ﻛﻨﺪ ﻓﺸﺮده ﻛﺮده و ﺑﻪ اي-ﻣﻴﻞ درس ﺑﻔﺮﺳﺘﻴﺪ .اﮔﺮ از ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ وﻳﻨﺪوز اﺳﺘﻔﺎده ﻣﻲ ﻛﻨﻴﺪ ﺣﺘﻤﺎ ﭘﺴﻮﻧﺪ ﻓﺎﻳﻞ اﺳﻜﺮﻳﭙﺖ ) (cmd, bat, vbsرا از اﻧﺘﻬﺎي اﺳﻢ ﻓﺎﻳﻞ ﭘﺎك ﻧﻤﺎﻳﻴﺪ .ﭼﺮا ﻛﻪ اﻛﺜﺮ ﺳﺮور ﻫﺎي اي-ﻣﻴﻞ ﺑﺎ ﭼﻨﻴﻦ ﻓﺎﻳﻞ ﻫﺎﻳﻲ ﻣﺸﻜﻞ دارﻧﺪ .اﻟﺒﺘﻪ ﻣﻲ ﺗﻮاﻧﻴﺪ از ارﺷﻴﻮ ﻫﺎي jarﻫﻢ ﺑﺮاي ﻓﺮﺳﺘﺎدن ﭘﺮوژه اﺳﺘﻔﺎده ﻛﻨﻴﺪ ﻣﻮﻓﻖ ﺑﺎﺷﻴﺪ. ﺗﻮﺿﻴﺤﺎت ﺑﻴﺸﺘﺮ در ﺳﺮ ﻛﻼس ﺣﻞ ﺗﻤﺮﻳﻦ اراﺋﻪ ﺧﻮاﻫﺪ ﺷﺪ. ﺿﻤﻴﻤﻪ: ﻧﻤﻮﻧﻪ اﺟﺮاﻳﻲ ﺑﺮﺧﻲ از ﻓﻴﻠﺘﺮﻫﺎ: اﮔﻪ ﮔﻔﺘﻴﻦ اﻳﻦ ﻛﻴﻪ؟ ﭘﺮﻧﺲ آﻳﻠﻴﻦ از !SH4 :اﻳﻦ ﻫﻢ ﻳﻚ ﻓﻴﻠﺘﺮ ﺟﺎﻟﺐ ﻏﻴﺮ ﺧﻄﻲ A <= P(i - 1, j - 1).Color C <= P(i + 1, j - 1).Color E <= P(i + 1, j).Color G <= P(i, j + 1).Color Color <= (A + B + C + D + E + P(i,j).Color <= Color B D F H F <= P(i, j - 1) .Color <= P(i - 1, j) .Color <= P(i - 1, j + 1) .Color <= P(i + 1, j + 1) .Color + G + H) / 8 Emboss اﻳﻦ ﻫﻢ ﻳﻚ ﻓﻴﻠﺘﺮ Color = P(i,j).Color Color' = P( i + 1, j + 1).Color r = Abs(Color.r – Color'.r + 128) g = Abs(Color.g – Color'.g + 128) b = Abs(Color.b – Color'.b + 128) P(i,j) = Color(r,g,b)
© Copyright 2025 Paperzz