Как да завъртя изображението, така че баркодът да е хоризонтален?? - MATLAB

Как мога да завъртя изображението с помощта на баркода, за да определя къде е ъгълът и да го завъртя, за да го направя хоризонтално. Използвах Hough Transform, но мога да завъртя само леко надясно.

Оригинално изображениеЗавъртяно изображение

rgb = imread('barcode10.jpg');
% Resize Image
rgb = imresize(rgb,0.33);
figure(),imshow(rgb);
% Convert from RGB to Gray
Igray = double(rgb2gray(rgb));
BW2 = edge(Igray,'canny');
figure(),imshow(BW2);
% Perform the Hough transform
[H, theta, rho] = hough(BW2);
 % Find the peak pt in the Hough transform
peak = houghpeaks(H);
 % Find the angle of the bars
barAngle = theta(peak(2));
J = imrotate(rgb,barAngle,'bilinear','crop');
figure(),imshow(J);

person Kim    schedule 01.02.2012    source източник


Отговори (1)


Първо трябва да откриете линиите. За откриване на линия можете да използвате трансформация на Hough.

person Harriv    schedule 01.02.2012
comment
Как да напиша този код?? Прекарах няколко седмици в четене за това и опитах кода, но няма да работи!! - person Kim; 01.02.2012
comment
Трябва да сте по-конкретни. какво си пробвал Как не работи? - person Harriv; 01.02.2012
comment
@Kim няма да получиш полезни отговори като този. Трябва поне да опитате нещо или да ни кажете къде ТОЧНО имате проблемите си. Освен това предполагам, че вече има много решения за това в интернет. Така че, моля, използвайте поне Google или потърсете в обмена на файлове matlab :) - person tim; 01.02.2012
comment
Опитах Откриване на линии с помощта на трансформацията на Hough но може да открива само някои определени редове, а не всички и след това се опитах да променя кода, за да открива редовете, но резултатът не е това, което искам, и също така не знам как да уведомя програмата, че това е баркодът. - person Kim; 01.02.2012
comment
Трябва да се запознаете с някои основи на обработката и разпознаването на изображения и да зададете конкретни въпроси или да използвате предварително създадена библиотека за четене на баркодове. Първата стъпка вероятно ще бъде търсене на баркод (черно-бял, висок контраст), след това откриване на ъгъл и декодиране. Това е много работа. Без да съм тествал, изображенията, които сте свързали, са с твърде ниска разделителна способност и замъглени, така че е трудно да се разчете този баркод дори с подходящ търговски софтуер. - person Harriv; 01.02.2012
comment
Зададох отново въпроса, погледнете - person Kim; 02.02.2012