[CENTER]السلام عليكم
اعتذر على التاخير بسبب ظروف
لقد قمت بمحاولة هذا الصباح
واصدقك القول اني اتبعت اسهل الطرق
لان الموضوع لو اردنا التعمق فيه لاحتجنا لوقت اطول
واذا اردت التعمق انصحك بالاطلاع على الابحاث التالية :
A Survey on Pixel-Based Skin Color Detection Techniques
Dynamic Texture Segmentation Using Fourier Transform
Textural Features for Image Classification
واهم واحد
An Early Fire Detection Method Based on Smoke Texture Analysis and Discrimination
وانا كما قلت استخدمت الاسهل
FIRE AND SMOKE DETECTION WITHOUT SENSORS: IMAGE PROCESSING BASED APPROACH
لانه يعتمد على الخصائص الغير ديناميكية للصورة وهذا ماعتقد انه حالتنا
المهم
الطريقة ليست بالقوية وليست نهائية
وتستخدم فقط ك “منبه اولي” بوجود الدخان
اي انه للحصول على نتائج اكيدة
يجب اضافة حسابات اخرى
صاحب الطريقة يقول انه تحصل على نتائج جيدة والله اعلم
الفكرة في الموضوع اننا نستخدم فضائي الالوان RGB و HSV لاتخاذ القرار هل البكسل هو دخان ام لا
بواسطة مقارنة وفقط
فاذا تحقق الشرطين نقول ان البكسل هذا دخان
الكود
clear all
clc
close all
I=imread('Image4.jpg');
H=rgb2hsv(I);
R=I(:,:,1);
G=I(:,:,2);
B=I(:,:,3);
S=H(:,:,2);
[m n]=size(R);
LX=zeros(m,n);
LY=zeros(m,n);
LZ=zeros(m,n);
LS=zeros(m,n);
Thg=15;
Ths=0.1;
X=abs(R-G);
Y=abs(G-B);
Z=abs(R-B);
[Xx Xy]=find(X<=Thg);
[Yx Yy]=find(Y<=Thg);
[Zx Zy]=find(Z<=Thg);
[Sx Sy]=find(S<=Ths);
Nx=length(Xx);
Ny=length(Yx);
Nz=length(Zx);
Ns=length(Sx);
for i=1:Nx
LX(Xx(i),Xy(i))=1;
end
for i=1:Ny
LY(Yx(i),Yy(i))=1;
end
for i=1:Nz
LZ(Zx(i),Zy(i))=1;
end
for i=1:Ns
LS(Sx(i),Sy(i))=1;
end
R=LX&LY&LZ&LS;
imshow(R)
حد المقارنة
Thg=15;
يمكنك تغييره مابين 15 الى 25 حسب مايقول صاحب البحث
اما الحد الاخر
Ths=0.1;
فهو ثابت
النتائج جيدة، لكني جربت فقط على صورتين
النتيجة
النتيجة
[/center]