تم النشر منذ 25 Mar 2016 السلام عليكم,,, اخواني ارجو مساعدتي,, مطلوب انشاء صورة شطرنج ملون في الماتلاب,,انا عملت الكود بس معرفت اربط مع دالة rand() 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 27 Mar 2016 الكود الذي وضعتيه يعلمك كيف تنشئين مصفوفة أصفار (3 مصفوفات بحجم 640x480): rgbImage = zeros(640, 480, 3, 'uint8'); كيف تفصلين مركبات الصورة RGB (أو أي مصفوفة عموماً) إلى ثلاث مصفوفات بثلاثة متغيرات، اجراء تعديلات عليها واعادة دمجها، أنت لست بحاجة لإتباع هذه الخطوات في كل كود تكتبينه. إذا انت مصرة على استخدام cat، يمكنك كتابة مثلاً: widthHeight = 1024; squareSize = 64; squares = widthHeight / squareSize; redChannel = uint8(255 * rand([squares squares])); % 1 greenChannel = uint8(255 * rand([squares squares])); % 2 blueChannel = uint8(255 * rand([squares squares])); % 3 image = cat(3, redChannel, greenChannel, blueChannel); % 4 image = imresize(image, squareSize, 'nearest'); imshow(image); خطوة الـzeros لن يكون لها أي فائدة لأن تلك القيمة لن تستخدم، الأربع الأسطر كان يمكن اختصارها بسطر واحد: image = uint8(255 * rand([squares, squares, 3])); 1 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 25 Mar 2016 رقعة الشطرنج مكونة من لونين فقط، لماذا كل هذه الألوان و لماذا تستعمل الدالة رند هنا من الأساس تستعمل لتوليد مصفوفة ذات قسم عشوائية rand 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 26 Mar 2016 اخي هدا المطلوبة ان تكون ملونة بالوان عشوائية وبستخدام دالة الراند 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 26 Mar 2016 12 ساعه مضت , kenham said: رقعة الشطرنج مكونة من لونين فقط، لماذا كل هذه الألوان و لماذا تستعمل الدالة رند هنا من الأساس تستعمل لتوليد مصفوفة ذات قسم عشوائية rand اخي هدا المطلوبة ان تكون ملونة بالوان عشوائية وبستخدام دالة الراند 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 26 Mar 2016 (معدل) rand ستعطيك قيم عشوائية بين الـ0 والواحد، يمكنك توليد 10×10 بكسلات عشوائية حيث تمثل لون الرقع، هكذا: m = rand([10, 10, 3]); أو إذا كنت تفضلين تقليل الذاكرة الازمة لتمثيل الصورة عن طريق استخدام uint8: m = uint8(255 * rand([10, 10, 3])); ثم كبري الصورة باستخدام imresize مع استخدام nearest للتكبير (الدالة تستخدم bicubic interpolation افتراضياً لو لم تمرري شيء)، عدد مرات التكبير اضربيها بعدد البكسلات للحصول على الحجم النهائي للصورة: m = imresize(m, 50.0, 'nearest'); مثال (حجم الصورة 10×50 = 500 بكسل لكنني صغرت النافذة): m = uint8(255 * rand([10, 10, 3])); m = imresize(m, 50.0, 'nearest'); imshow(m) تم تعديل 26 Mar 2016 بواسطه Mr.B 1 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 26 Mar 2016 2 ساعه مضت , Mr.B said: rand ستعطيك قيم عشوائية بين الـ0 والواحد، يمكنك توليد 10×10 بكسلات عشوائية حيث تمثل لون الرقع، هكذا: m = rand([10, 10, 3]); أو إذا كنت تفضلين تقليل الذاكرة الازمة لتمثيل الصورة عن طريق استخدام uint8: m = uint8(255 * rand([10, 10, 3])); ثم كبري الصورة باستخدام imresize مع استخدام nearest للتكبير (الدالة تستخدم bicubic interpolation افتراضياً لو لم تمرري شيء)، عدد مرات التكبير اضربيها بعدد البكسلات للحصول على الحجم النهائي للصورة: m = imresize(m, 50.0, 'nearest'); مثال (حجم الصورة 10×50 = 500 بكسل لكنني صغرت النافذة): m = uint8(255 * rand([10, 10, 3])); m = imresize(m, 50.0, 'nearest'); imshow(m) جميل بارك الله فيك,,ولكن الصورة تظهر صغيرة والمطلوبة ان تكون بحجم 1024*1024 وحجم كل مربع 64,,ماذا افعل 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 26 Mar 2016 (معدل) 1 ساعة مضت, عبير22 said: جميل بارك الله فيك,,ولكن الصورة تظهر صغيرة والمطلوبة ان تكون بحجم 1024*1024 وحجم كل مربع 64,,ماذا افعل أنشئ مصفوفة الـrand لتكون 16×16وكبريها في imresize لـ64 مرة أو العكس (لأن 1024/64=16). تم تعديل 26 Mar 2016 بواسطه Mr.B 1 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 26 Mar 2016 10 دقيقة مضت , Mr.B said: أنشئ مصفوفة الـrand لتكون 16×16وكبريها في imresize لـ64 مرة أو العكس (لأن 1024/64=16). تمام ظبطت ,,بس اخي هدا جوهر الحل ولكن المطلوب مني انشاء3 مصفوفات ودمجهم في مصفوفة واحدة عن طريق الدالة ()cat ثم جعل المصفوفة المدموجة تأخدالقيم من الدالة rand() عموما انا سويت الكود التالي لكن ما عرفت اربط المصفوفة بدالة الراند <<كيف تم عملية الربط ;('rgbImage = zeros(640, 480, 3, 'uint8 Extract the individual red, green, and blue color channels% ;(redChannel = rgbImage(:, :, 1 ;(greenChannel = rgbImage(:, :, 2 ;(blueChannel = rgbImage(:, :, 3 Make a square some RGB color% ;redChannel(100:150, 200:350) = 255 ;greenChannel(100:150, 200:350) = 213 ;blueChannel(100:150, 200:350) = 57 Recombine separate color channels into a single, true color RGB image% ;(rgbImage = cat(3, redChannel, greenChannel, blueChannel Display it% ;(imshow(rgbImage 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 26 Mar 2016 ربما تقصدين شيء مثل: rgbImage = zeros(640, 480, 3, 'uint8'); % Extract the individual red, green, and blue color channels redChannel = rgbImage(:, :, 1); greenChannel = rgbImage(:, :, 2); blueChannel = rgbImage(:, :, 3); % Make a square some RGB color %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% dim = size(redChannel(100:150, 200:350)); redChannel(100:150, 200:350) = uint8(255 * rand(dim)); greenChannel(100:150, 200:350) = uint8(255 * rand(dim)); blueChannel(100:150, 200:350) = uint8(255 * rand(dim)); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Recombine separate color channels into a single, true color RGB image rgbImage = cat(3, redChannel, greenChannel, blueChannel); % Display it imshow(rgbImage); انظري لكيفية استخدام rand وجربيها بقيم مختلفة: >> rand(2, 2) % مصفوفة 2×2 ans = 0.4644 0.9302 0.9677 0.1364 >> rand(1, 2, 3) % ثلاثة مصفوفات 2×1 ans(:,:,1) = 0.4486 0.9150 ans(:,:,2) = 0.9629 0.9524 ans(:,:,3) = 0.9988 0.9827 >> uint8(255 * rand(2, 2)) % مصفوفة 2×2 لأعداد صحيحة من 0-255 ans = 122 83 31 13 >> انظري لصفحة المساعدة في ماتلاب help، ستجدين كل ماتحتاجينه من معلومات عن طرق استخدام الدوال، مثلاً search rand 1 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 26 Mar 2016 (معدل) نعم هده طريقة الربط الدي احتاجها ولكن لاتعطي النتيجة المطلوبة ,,حيث الصورة الناتجة تحوي مربع بالوان عشوائية بينما المطلوب كامل الصورة........انقذني ايها النسر الذهبي تم تعديل 27 Mar 2016 بواسطه عبير22 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 27 Mar 2016 (معدل) الله يحفظك ويزيدك علم,, على مجهودك الرائع... !عفوا ليش استخدمت هده الخطوة squares = widthHeight / squareSize; وما استخدمت squarsize على طول يعني اقصد ماهوالغرض من عملية التقسيم... * وهل يوجد بديل للتكبير بدل من استخدام الامر الجاهز;(imresize(image, squareSize, 'nearest .................................................................................................... عندي سؤال تاني هل استخدام checkerboard/kron function مع بعض تعطى نفس النتيجة وهى شطرنج ملون تم تعديل 28 Mar 2016 بواسطه عبير22 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 28 Mar 2016 (معدل) On ٢٧/٣/٢٠١٦ at 4:10 PM, Mr.B said: تم تعديل 28 Mar 2016 بواسطه عبير22 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 28 Mar 2016 On ٢٧/٣/٢٠١٦ at 4:59 PM, عبير22 said: الله يحفظك ويزيدك علم,, على مجهودك الرائع... !عفوا ليش استخدمت هده الخطوة squares = widthHeight / squareSize; وما استخدمت squarsize على طول يعني اقصد ماهوالغرض من عملية التقسيم... * وهل يوجد بديل للتكبير بدل من استخدام الامر الجاهز;(imresize(image, squareSize, 'nearest .................................................................................................... عندي سؤال تاني هل استخدام checkerboard/kron function مع بعض تعطى نفس النتيجة وهى شطرنج ملون النسر الدهبي اين انت 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 28 Mar 2016 squares = widthHeight / squareSize; هذه غرضها ايجاد عدد المربعات التي تحتويها الصورة للصف والعمود، إذا كان عرض الصورة 1024 وأبعاد كل مربع 64، فعدد المربعات 1024/64=16 في كل صف وعمود. ضرب الـkronecker أول مرة أقرأ عنه، لكن يظهر أنه يمكن استخدامه لاستبدال imresize(..., 'nearest')، إذا ضربتي بمصفوفة الوحدة ones كل عناصرها واحد، فإن المصفوفة ستكبر كما لو استخدمتي الـnearest، فيمكن استبدال: image = imresize(image, squareSize, 'nearest'); بـ: image = kron(image, ones(squareSize, 'uint8')); لكن الفرق أن imresize أسرع للصور الكبيرة، وكذلك من يقرأ الكود يفهم أنك تكبيرين صورة. 1 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 29 Mar 2016 (معدل) النسر الذهبي ,,,اعذرني على كثرة الاسئلة ف انا مبتدائه في ماتلاب>>> اخي طلب مني عند الحل استخدام Class of image & Determine Class of image ...هل تم استخدامها بالفعل في الكود السابق؟.. ام اضيف الامر(class(image في نهاية الكود السابق ,, اخير ,,, مطلوب مني كمان في Coursework شطرنج ملون بستخدام checkerboard/kron function انا سويت الكود بس طلع بدون الوان ,,كيف ضيف دالة الراند للكود التالي : ; (J=checkerboard(64,4,4 ;J=J>0 ;(x=ones(8 ;(A=kron(x,J ;(imshow(A تم تعديل 30 Mar 2016 بواسطه عبير22 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
تم النشر منذ
السلام عليكم,,, اخواني ارجو مساعدتي,, مطلوب انشاء صورة شطرنج ملون في الماتلاب,,انا عملت الكود بس معرفت اربط مع دالة rand()
شارك هذا الرد
رابط المشاركة
شارك الرد من خلال المواقع ادناه