PDA

View Full Version : حرفه ای: الگوریتم افزایش کیفیت تصویر



prans.info
چهارشنبه 26 شهریور 1393, 17:23 عصر
سلام وقت بخیر
یه مدت دارم به این فکر می کنم که چطور میشه کیفیت تصویر رو افزایش داد یا حجمش رو کم کرد با کمترین کاهش کیفیت .
یه چیزی که به ذهنم رسید این بود که هر پیکسل رو تسیم بر چهار کنیم و هر یک از یک چهارم ها رو چهار برابر کنیم یعنی به یک پیکسل تبدیل کنیم که اونم نتیجش فکر کنم بزرگ شدن تصویر میشه و حتما کیفیتش هم کم تر میشه .
چیزی به ذهن شما میرسه ؟

godofphp
چهارشنبه 26 شهریور 1393, 19:04 عصر
سلام وقت بخیر
یه مدت دارم به این فکر می کنم که چطور میشه کیفیت تصویر رو افزایش داد یا حجمش رو کم کرد با کمترین کاهش کیفیت .
یه چیزی که به ذهنم رسید این بود که هر پیکسل رو تسیم بر چهار کنیم و هر یک از یک چهارم ها رو چهار برابر کنیم یعنی به یک پیکسل تبدیل کنیم که اونم نتیجش فکر کنم بزرگ شدن تصویر میشه و حتما کیفیتش هم کم تر میشه .
چیزی به ذهن شما میرسه ؟
کیفیت تصویر افزایش ؟ :متفکر:
امکان نداره کیفیت تصویر از آن چیزی که هست بیشتر بشه ولی حجمش کم میشه و نسبت به اون کیفیتش هم افت میکنه
میتونید تغییراتی رو تصویر بدید که کیفیت بیشتری داشته باشد اما این کار با تغییر روی پیکسل های تصویر انجام میشه که خیلی سخته و انگار تصویر جدیدی تولید میکنی
همه اینا بر میگرده به مبحث پردازش تصاویر دیجیتال

ravand
پنج شنبه 27 شهریور 1393, 10:23 صبح
خب فرمت svg اختراع شده و هر چی بزرگش بکنی کیفیتش کم نمیشه. ولی مرورگر های قدیمی رو پشتیبانی نمیکنه . خب بدرد ما که نخورد ولی بدرد آیندگان میخوره.

prans.info
پنج شنبه 27 شهریور 1393, 11:01 صبح
خب فرمت svg اختراع شده و هر چی بزرگش بکنی کیفیتش کم نمیشه. ولی مرورگر های قدیمی رو پشتیبانی نمیکنه . خب بدرد ما که نخورد ولی بدرد آیندگان میخوره.
این فرمت تصویری هست ؟
رو کدوم مرورگر ها جواب میده رو کدوم جواب نمیده ؟

prans.info
پنج شنبه 27 شهریور 1393, 11:08 صبح
یه چند تا عکس از گوگل پیدا کردم جالبه واقعا جواب میده
http://upload.wikimedia.org/wikipedia/commons/b/b0/NewTux.svg
رو چه ورژن های جواب نمیده ؟

eshpilen
پنج شنبه 27 شهریور 1393, 11:18 صبح
خب فرمت svg اختراع شده و هر چی بزرگش بکنی کیفیتش کم نمیشه. ولی مرورگر های قدیمی رو پشتیبانی نمیکنه . خب بدرد ما که نخورد ولی بدرد آیندگان میخوره.
به گمانم SVG برای هر نوع تصویری نیستا!
یعنی اینطوری هم نیست که شما برداری عکس یک منظره یا آدم رو تبدیل به SVG کنی با کیفیت عالی و بعدم هرچی بزرگش میکنی کیفیتش پایین نیاد!
تاجاییکه بنده میدونم در SVG از تعریف اشکال هندسی استفاده میشه. بنابراین بیشتر برای کاربردهایی که از اشکال هندسی تشکیل شدن (حالا هرچقدر زیاد و کوچک) کاربرد و کارایی داره. اشکال تصنعی.
بطور مثال شما گفتی اینجا یک دایره به شعاع 10 سانت هست. خب این تعریف یک شکل هندسیه و توش هیچ اطلاعات پیکسل نیست و اطلاعات کامل و دقیق درمورد یک دایره است، و صرفا با تغییر عدد شعاع میشه دایرهء کوچکتر و بزرگتر دلخواهی رو از روی اون محاسبه و ایجاد کرد و بنابراین روی هر صفحهء نمایشی با هر سایزی میشه نمایشش داد بدون اینکه چیزی از اطلاعات اصلی کم یا زیاد بشه و کیفیت تغییری بکنه.
ولی حالا در نظر بگیر در مورد یک عکس از یک منظره یا چهرهء شخص، پیکسل ها رو نمیشه به این راحتی و به شکل بهینه ای به اشکال هندسی نگاشت کرد و اگر هم بشه معمولا تصویر دستخوش کاهش دقت و کیفیت طبیعی میشه، و بعدش هم که شما عکس رو از یک حدی بخوای بزرگتر کنی، اطلاعات پیکسل ها یا منظرهء حقیقی نیستن که گسترش پیدا میکنن، بلکه یک چیز ساختگی و غیرواقعیه (که در نتیجه فکر میکنم با بزرگتر شدن تصویر از کیفیت و طبیعی بودن اون هم کاسته خواهد شد).

ravand
پنج شنبه 27 شهریور 1393, 11:19 صبح
روی کدوم ورژنش رو نمیدونم. ولی من روی نسخه ی 9 اکسپلورر هم تست کردم جواب داد ولی 8 به پایین جواب نمیده.

ravand
پنج شنبه 27 شهریور 1393, 11:23 صبح
به گمانم SVG برای هر نوع تصویری نیستا!
یعنی اینطوری هم نیست که شما برداری عکس یک منظره یا آدم رو تبدیل به SVG کنی با کیفیت عالی و بعدم هرچی بزرگش میکنی کیفیتش پایین نیاد!
تاجاییکه بنده میدونم در SVG از تعریف اشکال هندسی استفاده میشه. بنابراین بیشتر برای کاربردهایی که از اشکال هندسی تشکیل شدن (حالا هرچقدر زیاد و کوچک) کاربرد و کارایی داره. اشکال تصنعی.
بطور مثال شما گفتی اینجا یک دایره به شعاع 10 سانت هست. خب این تعریف یک شکل هندسیه و توش هیچ اطلاعات پیکسل نیست و اطلاعات کامل و دقیق درمورد یک دایره است، و صرفا با تغییر عدد شعاع میشه دایرهء کوچکتر و بزرگتر دلخواهی رو از روی اون محاسبه و ایجاد کرد و بنابراین روی هر صفحهء نمایشی با هر سایزی میشه نمایشش داد بدون اینکه چیزی از اطلاعات اصلی کم یا زیاد بشه و کیفیت تغییری بکنه.
ولی حالا در نظر بگیر در مورد یک عکس از یک منظره یا چهرهء شخص، پیکسل ها رو نمیشه به این راحتی و به شکل بهینه ای به اشکال هندسی نگاشت کرد و اگر هم بشه معمولا تصویر دستخوش کاهش دقت و کیفیت طبیعی میشه، و بعدش هم که شما عکس رو از یک حدی بخوای بزرگتر کنی، اطلاعات پیکسل ها یا منظرهء حقیقی نیستن که گسترش پیدا میکنن، بلکه یک چیز ساختگی و غیرواقعیه (که در نتیجه فکر میکنم با بزرگتر شدن تصویر از کیفیت و طبیعی بودن اون هم کاسته خواهد شد).

شایدم حق با شما باشه. یه برنامه توی سیستمم داشتم که اسمش تبدیل عکس ها با فرمت های دیگه به svg بود ولی وقتی تبدیلش میکردی سیاه و سفید میشد. شایدم من بلد نبودم باهاش کار کنم. شایدم علت دیگه ای داشته. :متفکر:

eshpilen
پنج شنبه 27 شهریور 1393, 11:23 صبح
یه چند تا عکس از گوگل پیدا کردم جالبه واقعا جواب میده
http://upload.wikimedia.org/wikipedia/commons/b/b0/NewTux.svg
رو چه ورژن های جواب نمیده ؟
بله دقیقا تصاویر نمونه SVG هم که بنده تاحالا دیدم از همین انواع تصنعی بودن. بخصوص اشکال ساده یا اینطور بگیم اونایی که میشه با اشکال هندسی اونا رو به تمامی و به دقت مشخص کرد. مثلا چشم های این تصویر نمونه با بیضی تعریف میشه، یه جاهایی از gradient استفاده شده که اونم فرمول ریاضی ساده ای داره، و غیره.

البته تاجاییکه یادمه تصویرهای طبیعی تبدیل شده به SVG هم دیدم که اونا همشون از حالت طبیعی در اومده بودن و درواقع تصویر اولیه طبیعی تر و با کیفیت تر بود. حالا اگر خیلی پردازش بشه و طبیعتا حجمش هم زیاد میشه، شاید بشه با کیفیت کم و بیش برابر به SVG تبدیل کرد، ولی مثل این تصویر tux نیست که هرچقدر بخوای بزرگش کنی بدون اینکه کیفیتش پایین بیاد.

ravand
پنج شنبه 27 شهریور 1393, 11:32 صبح
یه نمونه اش این سایت: http://www.files-conversion.com/image-converter.php
یه فایل png رو رفتم به svg تبدیل کنم یه صفحه خالی بهم داد:
http://www.files-conversion.com/result/5.svg
حالا دلیلش رو نمیدونم چرا نوشته تبدیل به svg . از این نمونه برنامه ها رو زیاد دیدم!

eshpilen
پنج شنبه 27 شهریور 1393, 11:34 صبح
شایدم حق با شما باشه. یه برنامه توی سیستمم داشتم که اسمش تبدیل عکس ها با فرمت های دیگه به svg بود ولی وقتی تبدیلش میکردی سیاه و سفید میشد. شایدم من بلد نبودم باهاش کار کنم. شایدم علت دیگه ای داشته. :متفکر:
بله اصولا فکر نمیکنم بشه به شکل بهینه ای تصاویر طبیعی رو با تمام جزییات به svg تبدیل کرد. اگر هم بشه حجمش از تصویر اولیه هم بیشتر میشه (حساب کن اطلاعات رنگ تمام پیکسل های تصویر اولیه بهرحال باید توش ذخیره بشه مثل تصویر اصلی)، و ضمنا بهرحال اون خاصیت جادویی svg رو هم نداره (یعنی هرچقدر بخوای بزرگ کنی بدون اینکه کیفیتش کم بشه).

ravand
پنج شنبه 27 شهریور 1393, 11:41 صبح
البته همانطوری که شما گفتید svg یه کد نویسی هم داره:

<svg width="228" height="253" viewBox="0 0 228 253"> <g class="banana"><path fill="none" stroke="#f7c562" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" d="M8.6 223.9c0 0 143.5 3.4 185.8-181.8 2.7-11.7-1.2-20.2 1.3-33.1h16.3c0 0-3.1 17.2 1.1 30.8 21.4 68.7-4.2 242.3-204.2 196.6L8.6 223.9zM8.8 230.3c0 0 188.2 40.2 196.5-160.1" /> </g></svg>
http://www.sitepoint.com/closer-look-svg-path-data/

saeed-71
پنج شنبه 27 شهریور 1393, 12:44 عصر
فک میکردم svg فقط برای ایکون ها به کار میره