کد مطلب هیستوگرام افقی تصویر لبه های عمودی ،که در یکی از مقاله های مربوط به پردازش پلاک خودرو که در همین بخش اومده ،چطور بدست میاد؟
اطلاعیه
Collapse
No announcement yet.
هیستوگرام افقی تصویر در مطلب
Collapse
X
-
پاسخ : هیستوگرام افقی تصویر در مطلب
نوشته اصلی توسط hamid_200270هیستوگرام افقی تصویر لبه های عمودی
خود متلب تابعی برای رسم هیستوگرام داره به اسم imhist
-
پاسخ : هیستوگرام افقی تصویر در مطلب
نوشته اصلی توسط mojalanمنظور سوال شما رو نفهمیدم. هیستوگرام در واقع شمردن تعداد پیکسلهای با شدت روشنایی یکسان و نشون دادن تعداد اونهاست مثلا رنگ سفید خالص با شدت 255 چند بار در تصویر تکرار شده.
خود متلب تابعی برای رسم هیستوگرام داره به اسم imhist
برای مثال در مقاله <روشی جدید و سریع برای تشخیص محل پلاک خودرو از تصاویر پیچیده بر اساس عملیات مورفولوژیکی> که در همین بخش قرار داره بعد از پیدا کردن لبه های عمودی شکل به کمک عملگر سوبل ،برای مشخص کردن مکان پلاک از تصویر هیستوگرام افقی تصویر لبه های عمودی گرفت .
این شکل پیدا کردن لبه های عمودی تصوبر
و این شکل هم هیستوگرام افقی تصویر لبه های عمودی که به طور کلی سطرهایی که پلاک خودرو در آن ها قرار دارد، دارای بیشترین هیستوگرام افقی هستند
اما اگر از تابع imhist استفاده کنیم هیستوگرام بصورت شکل زیر میشه
اما این موضوع رو در چند مقاله دیگه هم دنبال گردم و از هیستوگرام افقی تصویر لبه های عمودی استفاده شد .
>>> انگشتان ما نشانه پنج تن و بندهای ان نشانه چهارده معصوم <<<
دیدگاه
-
پاسخ : هیستوگرام افقی تصویر در مطلب
اگه این هیستوگرام از تصویر باینری گرفته شده باشه، روشش اینه که با دستور im2bw تصویر رو به باینری (دوسطحی) تبدیل کرد، بعد تو هر ستون از تصویر تعداد پیکسلهای صفر (یا یک) رو شمرد.لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.با تمام وجود گناه کردیم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنیم چه می کند؟"دکتر شریعتی"
لطفاً سوالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
اگر جایی که ایستاده اید را نمی پسندید، عوضش کنید شما درخت نیستید!! "پاسکال"
یا به اندازه ی آرزوهایت تلاش کن یا به اندازه تلاشت آرزو کن. "شکسپیر"
دیدگاه
-
پاسخ : هیستوگرام افقی تصویر در مطلب
اگر درست متوجه سوالتون شده باشم فکر نکنم درست باشه بگید هیستوگرام.
امتحان کنید ببینید با plot کردن یک سطر از تصویر به چیزی که میخواهید میرسید یا نه؟
مثلا:
که شدت روشنایی همه پیکسلهای سطر اول تصویر شما رو نشون میده.It's nice to be important but it's important to be nice!
از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.
دیدگاه
-
پاسخ : هیستوگرام افقی تصویر در مطلب
منظورتون اینه یا نه؟
کد PHP:clear;clc;close all
I = imread('image_file.bmp');
I_greyscale = rgb2gray(I);
I_Binary = im2bw(I_greyscale);
horizontal_histogram = sum(I_Binary);
subplot(2,1,1); imshow(I_Binary)
subplot(2,1,2); bar(horizontal_histogram)
این هم نتیجه خروجی:
لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.با تمام وجود گناه کردیم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنیم چه می کند؟"دکتر شریعتی"
لطفاً سوالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
اگر جایی که ایستاده اید را نمی پسندید، عوضش کنید شما درخت نیستید!! "پاسکال"
یا به اندازه ی آرزوهایت تلاش کن یا به اندازه تلاشت آرزو کن. "شکسپیر"
دیدگاه
-
پاسخ : هیستوگرام افقی تصویر در مطلب
سلام
شما تصوبر خاکستری رو به باینری تبدیل کردید بعد ازش هیستوگرام گرفتید
تصویر اصلی:
نتیجه برنامه شما
تو چنتا مقاله ای که خونده بودم بعد از تسخیص لبه از هیستوگرام افقی استغاده کرده ولی شما مستقیما تصوبر اصلی رو به باینری تبدیل کردید و بعد هیستوگرام گرفتید بعد اینکه این هیستگرام واضح نیست منظورم اینه که به صورت پستی که گذاشته بودم نیست.
نوشته اصلی توسط hamid_200270درست حق با شماست خود متلب تابعی برای رسم هیستوگرام داره به اسم imhist ، ولی من منظورم هستوگرام افقی..
برای مثال در مقاله <روشی جدید و سریع برای تشخیص محل پلاک خودرو از تصاویر پیچیده بر اساس عملیات مورفولوژیکی> که در همین بخش قرار داره بعد از پیدا کردن لبه های عمودی شکل به کمک عملگر سوبل ،برای مشخص کردن مکان پلاک از تصویر هیستوگرام افقی تصویر لبه های عمودی گرفت .
این شکل پیدا کردن لبه های عمودی تصوبر
و این شکل هم هیستوگرام افقی تصویر لبه های عمودی که به طور کلی سطرهایی که پلاک خودرو در آن ها قرار دارد، دارای بیشترین هیستوگرام افقی هستند
اما اگر از تابع imhist استفاده کنیم هیستوگرام بصورت شکل زیر میشه
اما این موضوع رو در چند مقاله دیگه هم دنبال گردم و از هیستوگرام افقی تصویر لبه های عمودی استفاده شد .>>> انگشتان ما نشانه پنج تن و بندهای ان نشانه چهارده معصوم <<<
دیدگاه
-
پاسخ : هیستوگرام افقی تصویر در مطلب
سلام. من فقط کلیت کارو میخواستم نشون بدم که ببینم منظورتون همینه یا نه و منظورم تشخیص پلاک نبوده و فقط مثال زدم.
میتونید به جای دستور bar از دستور plot استفاده کنید که نتیجه این شکلی بشه:
در مورد لبه های افقی و عمودی (نتیجه سرچ گوگل):
For horizontal and vertical edges, you can just do something like:
کد PHP:horizontalEdgeImage = imfilter(grayImage, [-1 0 1]);
verticalEdgeImage = imfilter(grayImage, [-1 0 1]');
لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.با تمام وجود گناه کردیم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنیم چه می کند؟"دکتر شریعتی"
لطفاً سوالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
اگر جایی که ایستاده اید را نمی پسندید، عوضش کنید شما درخت نیستید!! "پاسکال"
یا به اندازه ی آرزوهایت تلاش کن یا به اندازه تلاشت آرزو کن. "شکسپیر"
دیدگاه
-
پاسخ : هیستوگرام افقی تصویر در مطلب
سلام آقای هادی
راستش من انقدر گیچ شدم که اصلا حرفای شما رو نمی فهمم غیر از این الگوریتم 3تای دیگه هست که باید تا آخر این ماه تموم کنم.
اینطور که من فهمیدم شما تو زمینه پردازش تصویر خیلی استادید برخلاف من که اصلا چیزی نمی دونم .اگر میشه یکم واضح تر بگید که منم متوجه بشم.
تو لینک http://www.eca.ir/forum2/index.php?topic=65809.0 برای خورشید خانم برنامه ای نوشتید که برای پروژه منم کابرد داره ولی نتونستم ازش استفاده کنم.اگر براتون امکان داره از همین عکسی که گذاشتم استفاده کنید تا منم بتونم ازش استفاده کنم...
از لطفتون ممنون>>> انگشتان ما نشانه پنج تن و بندهای ان نشانه چهارده معصوم <<<
دیدگاه
-
پاسخ : هیستوگرام افقی تصویر در مطلب
سلام آقا حمید. نه من خیلی پردازش تصویر بلد نیستم در حد درس پردازش تصویر ارشد بلدم و بیشتر تسلطم روی برنامه نویسی با نرم افزار متلب هست.
شما روش کارتون رو لطفاً دقیق بگین تا من هم تو برنامه نویسی کمک کنم.لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.با تمام وجود گناه کردیم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنیم چه می کند؟"دکتر شریعتی"
لطفاً سوالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
اگر جایی که ایستاده اید را نمی پسندید، عوضش کنید شما درخت نیستید!! "پاسکال"
یا به اندازه ی آرزوهایت تلاش کن یا به اندازه تلاشت آرزو کن. "شکسپیر"
دیدگاه
-
پاسخ : هیستوگرام افقی تصویر در مطلب
روش کار این الگوریتم کلا بصورت زیر:
از تصوبر ورودی با دستور rgb2gray به خاکستری تبدیل میکنیم وبا دستور f2=fspecial ('gaussian', 15, 0.00000000001);
برای خذف نویز های احتمالی استفاده میکنیم در مرحله بعد از دستور f4=edge(f3,'sobel','vertical'لبه های عمودی تصویر رو پیدا میکنیم
تا اینجا که مشکلی نیsت اما از مرحته تحلیل هیستوگرام یکم گیچ گنندست.بعد از پیدا کردن لبه های عمودی تصویر ، از تحلیل هیستوگرام کمک گرفته و هیستوگرام افقی تصویر لبه پیدا می شود . بدین منظور برای هر سطر از تصویر تعداد نقاط با سطح خاکستری یک را شمرده و نموداری تشکیل می شود ، که محور افقی آن سطر های تصویر و محور عمودی آن همان تعداد نقاط شمرده شده میباشد
به طور کلی سطر هایی که پلاک خودور در آنها قرار دارد دارای بیشترین هیستوگرام افقی هستند لذا مرحله بعدی پیدا کردن سطر هایی است ، که 55% بالای هیستوگرام را تشکیل می دهند خوب اولین مشکل چطور باید سطر هایی که %55 بالای هستوگرام رو پیدا کرد
این سطرها محل کاندید پلاک هستند،برای اینکه اثر نویز تا حدی کاهش یابد، سطری به عنوان کاندید در نظر گرفته می شود که اولاً شرط بالا را داشته ثانیاً تعداد نقاط روشن سطر بعدا ی اش 70% تعداد نقاط روشن خود سطر باشد.
برای پیدا کردن محل واقعی پلاک با درنظر گرفتن این که عرض پلاک بین 15 تا 35 پیکسله ناحیه های خارج ازین محدوده رو حذف میکنن.میشه بگین چطور میشه این شرط رو تو متلب پیاده سازی کرد؟
شکل های الگوریتم:
پیدا کردن لبه های عمودی تصویر
: هیستوگرام افقی تصویر لبه های عمودی
تصویر کاندید دوسطحی بدست آمده از تصویر لبه
و بقیه مراحل و طبق الگوریتم ادامه میدیم فعلا این بخش از الگوریتن مشکلتره
نوشته اصلی توسط هـــادیشما روش کارتون رو لطفاً دقیق بگین تا من هم تو برنامه نویسی کمک کنم.>>> انگشتان ما نشانه پنج تن و بندهای ان نشانه چهارده معصوم <<<
دیدگاه
-
پاسخ : هیستوگرام افقی تصویر در مطلب
این قسمت رو ننوشتم:
نوشته اصلی توسط hamid_200270برای اینکه اثر نویز تا حدی کاهش یابد، سطری به عنوان کاندید در نظر گرفته می شود که اولاً شرط بالا را داشته ثانیاً تعداد نقاط روشن سطر بعدا ی اش 70% تعداد نقاط روشن خود سطر باشد.
این هم کد:(تابع freezeColors فقط برای نمایش استفاده شده و در الگوریتم نقشی نداره)
کد PHP:clear;clc;close all
I = imread('Toyota.jpg');
I_greyscale = rgb2gray(I);
verticalEdgeImage = imfilter(I_greyscale, [-1 0 1]);
VE_Binary = im2bw(verticalEdgeImage,graythresh(verticalEdgeImage));
horizontal_projection = sum(VE_Binary,2);
%
miny = 1; maxy = length(horizontal_projection);
minx = 0; maxx = max(horizontal_projection) + 10;
subplot(2,2,1)
colormap('default')
imagesc([minx maxx],[miny maxy],I);title('Original')
freezeColors
subplot(2,2,2)
colormap('Gray')
imagesc([minx maxx],[miny maxy],I_greyscale);title('Grayscale')
freezeColors
subplot(2,2,3)
colormap('Gray')
imagesc([minx maxx],[miny maxy],VE_Binary);title('Binary')
freezeColors
subplot(2,2,4)
colormap('default')
imagesc([minx maxx],[miny maxy],flipud(VE_Binary));
hold on;barh(flipud(horizontal_projection));title('Horiz Projection')
set(gca,'ydir','normal')
%
Hi = 0.55;
[~,IX] = sort(horizontal_projection,'descend');
Ind = IX(round((1-Hi)*length(IX)):end); % non-top 55%
horizontal_projection(Ind) = 0;
%
MinW = 15; MaxW = 35;
regs = hist_reg(horizontal_projection);
remove = [];
for i=1:size(regs,1)
if regs(i,2)-regs(i,1)+1 < MinW || regs(i,2) - regs(i,1)+1 > MaxW
remove = [remove, i];
end
end
regs(remove,:) = [];
%
x = [minx,maxx];
subplot(2,2,2);hold on
for i = 1 : size(regs,1)
y = [regs(i,1),regs(i,1)];
line(x,y,'color','y')
y = [regs(i,2),regs(i,2)];
line(x,y,'color','r')
end
لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.با تمام وجود گناه کردیم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنیم چه می کند؟"دکتر شریعتی"
لطفاً سوالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
اگر جایی که ایستاده اید را نمی پسندید، عوضش کنید شما درخت نیستید!! "پاسکال"
یا به اندازه ی آرزوهایت تلاش کن یا به اندازه تلاشت آرزو کن. "شکسپیر"
دیدگاه
-
پاسخ : هیستوگرام افقی تصویر در مطلب
سلام از تلاشتون ممنون
برای من سه تا خطا داد که یکیش freezeColors بود که با حذف کردنش درست شد
دو تا خطای دیگه
??? [~,IX] = sort(horizontal_projection,'descend'
|
Error: Expression or statement is incorrect--possibly unbalanced (, {, or [.
برنامه ای که شما نوشتید برای من خیلی عجیبه ،شما با برنامه دیگه ای کار میکنید! و اینکه فکر کنم این روش شما برای الگوریتم DFT باشه .و نمیشه مثل الگوریتم بالا جلو رفت>>> انگشتان ما نشانه پنج تن و بندهای ان نشانه چهارده معصوم <<<
دیدگاه
-
پاسخ : هیستوگرام افقی تصویر در مطلب
سلام. برنامه رو کامل کپی کردم اینجا، خطایی که داده هم مشخصه که مربوطه به نامتقارن بودن پرانتز و براکته. هر قسمت برنامه رو هم با یک خط و علامت % جدا کردم.
قسمت اول(خط 1 تا 6): دریافت تصویر، تبدیل به سطح خاکستری، تبدیل به تصویر باینری، محاسبه هیستوگرام(پروجکشن) افقی
قسمت دوم (27-8): نمایش تصاویر و هیستوگرام افقی
قسمت سوم(31-28): حذف زیر 55 درصد
قسمت 4 (41-33): حذف سطرهایی که بین 15 تا 35 پیکسل پشت سر هم نیستند.
قسمت 5(آخر 50-43): نمایش نواحی سطری کاندید حضور پلاک در تصویر
کل فایلهای پروژه
رمز فایل: www.eca.irلطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.با تمام وجود گناه کردیم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنیم چه می کند؟"دکتر شریعتی"
لطفاً سوالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
اگر جایی که ایستاده اید را نمی پسندید، عوضش کنید شما درخت نیستید!! "پاسکال"
یا به اندازه ی آرزوهایت تلاش کن یا به اندازه تلاشت آرزو کن. "شکسپیر"
دیدگاه
دیدگاه