Member 13921225 Ответов: 0

Есть ли у вас какой-либо метод считывания значения резистора (цветовые коды резисторов) с использованием методов обработки изображений в MATLAB? Пожалуйста


в настоящее время я работаю с проектом по обнаружению цвета резистора с помощью обработки изображений.Но я не могу получить результаты для всех изображений.Пожалуйста, помогите мне.

Что я уже пробовал:

У меня есть treid следующий код....



КГО;
закрыть все;
очистить все;
[fname path]=uigetfile('*.*','enter an image');
fname=strcat(путь,fname);
RGB=imread(fname);
imshow(RGB);
matrixSize=размер(RGB);
Y=matrixSize(1,1);
X=matrixSize(1,2);
x1 = Y;
Y=Y/2;
Г=круг(г);

для i=1:x1
для t=1:X
если RGB(i,t)<255
двоичный код(i,t)=0;
еще
двоичный код(i,t)=255;
конец
конец
конец
рисунок, imshow(двоичный код)
для i=1:X
если RGB(Y,i)==0 && RGB(Y,i,2)==0 && RGB(Y,i,3)==0% хранит 65 для черного цвета
Temp(i,1)='A';
еще
Temp(i,1)=0;
конец
конец

для i=1:X
если РГБ(Г,я) и GT;=185 &&усилителя; РГБ(Г,я,2)&ГТ;=122 &&усилителя; РГБ(Г,Я,3)&ЛТ;=87
Temp(i,1)='B'; %хранит 66 для коричневого цвета
конец
конец

для i=1:X
если RGB(Y,i)>=200 && RGB(Y,i,2)<=50 && RGB(Y,i,3)<=50
Temp(i,1)='R'; %хранит 82 для красного цвета
конец
конец

для i=1:X
если РГБ(Г,я) и GT;=240 &&усилителя; РГБ(Г,я,2)&ГТ;=230 &&усилителя; РГБ(Г,Я,3)&ЛТ;=10
Temp(i,1)='Y'; %хранит 89 для желтого цвета
конец
конец

для i=1:X
если RGB(Y,i)<=140 && RGB(Y,i,2)<=140 && RGB(Y,i,3)>=200
Temp(i,1)='D'; %хранит 68 для синего цвета
конец
конец

для i=1:X
если RGB(Y,i)==163 && RGB(Y,i,2)==73 &&RGB(Y,i,3)==164
Temp(i,1)='V'; %хранит 86 для фиолетового цвета
конец
конец

для i=1:X
если RGB(Y,i)==0 & & amp; RGB(Y,i,2)==255 &&RGB(Y,i,3)==0
Temp(i,1)='G'; %хранит 72 для зеленого цвета
конец
конец

j=1;

для i=1:X
если Temp(i,1)~=0
colorArray(1,j)=Temp(i,1);
j=j+1;

конец
конец



colorArray(1,1)= colorArray(1,floor(j/6)); %для 1-го диапазона
colorArray(1,2)= colorArray(1,floor(j/3)+1); %для 2-й полосы
colorArray(1,3)= colorArray(1,floor(j-2)); %для 3-й полосы
i=1;
для i=1:3
если colorArray(1,i)==65 %черный
colorArray(1,i)=0;
disp('черный цвет')
конец

если colorArray(1,i)==66 %коричневый
colorArray(1,i)=1;
disp('коричневый цвет')
конец

если colorArray(1,i)==82 %красный
colorArray(1,i)=2;
disp('красный цвет')
конец

если colorArray(1,i)==79 %оранжевый
colorArray(1,i)=3;
disp('оранжевый цвет')
конец

если colorArray(1,i)==89 %желтый
colorArray(1,i)=4;
disp('желтый цвет')
конец

если colorArray(1,i)==71 %зеленый
colorArray(1,i)=5;
disp('зеленый цвет')
конец

если colorArray(1,i)==68 %синий
colorArray(1,i)=6;
disp('синий цвет')
конец

если colorArray(1,i)==86 %фиолетовый
colorArray(1,i)=7;
disp('фиолетовый цвет')
конец

если colorArray(1,i)==72 %серый
colorArray(1,i)=8;
disp('серый цвет')
конец

если colorArray(1,i)==87 %белый
colorArray(1,i)=9;
disp('белый цвет')
конец
конец

сотни=мощность(10,colorArray(1,3));
tens=colorArray(1,1)*10;
единицы=colorArray(1,2)*1;

значение резистора=(десятки+единицы)*сотни


рисунок, imshow(fname);

RedDk

Кто-то разместил ссылку где-то здесь:
https://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862

0 Ответов