日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab读取黑白图目标位置的坐标,matlab对图像处理——裁剪 获取灰度图 获取坐标点...

發布時間:2023/12/15 循环神经网络 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab读取黑白图目标位置的坐标,matlab对图像处理——裁剪 获取灰度图 获取坐标点... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

matlab截取圖像Ⅱ

歡迎來到!德萊聯盟 應該是CSDN之bruderlung的博客!

你可以仔細閱讀這篇文章,結合實例初步了解MATLAB的一些功能!

程序要求

建立循環函數,通過程序依此讀取十幅原始圖像,然后將原始圖像轉存為灰度圖像

確定數碼管所顯示數字的四角坐標,然后將其依次輸出

依據之前尋找到的四個坐標,將數字部分以外的圖像設置為黑色;

在(3)的基礎上,通過編寫程序將數字部分轉存為一個較小的圖像(該圖像的尺寸由步驟(3)中的四個坐標計算得到)。

建立循環函數

save_path='D:\picture\'; %獲取圖片所在位置

img_path_list = dir(strcat(save_path,'*.jpg')); %依次僅讀取文件夾中的.jpg格式圖片

img_num=length(img_path_list); %判斷圖片個數

for i = 1:img_num

picture_name = img_path_list(i).name; %獲取圖片的名稱

picture_1 = imread(strcat(save_path,picture_name)); %1.建立循環函數依次讀取原始圖像

end

處理后效果:

確定坐標

ginput函數

功能:允許用戶以交互方式使用鼠標選定要裁剪的區域以此獲取坐標點并以矩形方式裁剪

[x,y]=ginput(4); %獲取數碼管所顯示的數字的四角坐標,獲取坐標時要按照左上,右上,左下,右下的順序方式獲取∵后面涂黑時有局限性

灰度圖

picture_2=rgb2gray(picture_1); %將24位原始圖轉為8位灰度圖

處理后效果:

背景設為黑色

picture_1 = imread(strcat(save_path,picture_name)); %1.建立循環函數依次讀取原始圖像

picture_2=rgb2gray(picture_1); %將24位原始圖轉為8位灰度圖

picture_3 = picture_2;

%對除數字外的圖像進行填充顏色

for m = 1:size(picture_3,1)

for n = 1:size(picture_3,2)

if n < x(1) || n > x(4) || m < y(1) || m > y(4) %不在矩形內的點變為黑色

picture_3(m,n,1) = 0;

end

end

end

imwrite(picture_3,[num2str(i+10),'.jpg']);

處理后效果:

裁剪圖片

imcrop函數

功能:用于返回圖像的一個裁剪區域。可把圖像顯示在一個圖像窗口中

picture_4 = imcrop(picture_2,[x(1),y(1),abs(x(1)-x(4)),abs(y(1)-y(4))]); %對圖像進行截取,(x1,y1)為數字左上角坐標,(x4,y4)為右下角的坐標。abs(x(1)-x(4))為x軸截取的長度,abs(y(1)-y(4))為y軸截取的長度。

處理后效果:

完整代碼

在這里插入代碼片

%必讀:獲取坐標時需要用鼠標點擊四次,分別為數字的四角,獲取坐標時要按照左上,右上,左下,右下的順序方式獲取∵后面涂黑時有局限性

save_path='D:\picture\'; %獲取圖片所在位置

img_path_list = dir(strcat(save_path,'*.jpg')); %依次僅讀取文件夾中的.jpg格式圖片

img_num=length(img_path_list); %判斷圖片個數

for i = 1:img_num

picture_name = img_path_list(i).name; %獲取圖片的名稱

picture_1 = imread(strcat(save_path,picture_name)); %1.建立循環函數依次讀取原始圖像

picture_2=rgb2gray(picture_1); %將24位原始圖轉為8位灰度圖

%size(picture_2); %求出我的圖像的大小

%s=1920

imshow(picture_2)

if i==1 %用if只需要確定一次圖像中數字的四角坐標

[x,y]=ginput(4); %獲取數碼管所顯示的數字的四角坐標,

imwrite(picture_2,[num2str(i),'.jpg']) %灰度圖從01開始命名到10結束

picture_3 = picture_2;

%對除數字外的圖像進行填充顏色

for m = 1:size(picture_3,1)

for n = 1:size(picture_3,2)

if n < x(1) || n > x(4) || m < y(1) || m > y(4) %不在矩形區域內的點變為黑色

picture_3(m,n,1) = 0;

end

end

end

imwrite(picture_3,[num2str(i+10),'.jpg']); %將涂黑的圖片保存并從11開始命名到20結束

picture_4 = imcrop(picture_3,[x(1),y(1),abs(x(1)-x(4)),abs(y(1)-y(4))]);

imwrite(picture_4,[num2str(i+20),'.jpg']); %將截取的數字圖像保存并從21開始命名到30結束

else

imwrite(picture_2,[num2str(i),'.jpg']); %灰度圖從01開始命名到10結束

picture_3 = picture_2;

%對除數字外的圖像進行填充顏色

for m = 1:size(picture_3,1)

for n = 1:size(picture_3,2)

if n < x(1) || n > x(4) || m < y(1) || m > y(4) %不在矩形區域內的點變為黑色

picture_3(m,n,1) = 0;

end

end

end

imwrite(picture_3,[num2str(i+10),'.jpg']); %將涂黑的圖片保存并從11開始命名到20結束

picture_4 = imcrop(picture_3,[x(1),y(1),abs(x(1)-x(4)),abs(y(1)-y(4))]); %對圖像進行截取,(x1,y1)為數字左上角坐標,(x4,y4)為右下角的坐標。abs(x(1)-x(4))為x軸截取的長度,abs(y(1)-y(4))為y軸截取的長度。

imwrite(picture_4,[num2str(i+20),'.jpg']); %將截取的數字圖像保存并從21開始命名到30結束

end

end

[x,y] %矩陣中每一行依次為四點坐標

% 備注:1.剛開始if函數里面只寫了[x,y]=ginput(4)但是運行后無法顯示0的圖像了,由于時間原因所以,就將處理的程序全部復制到i==1時里面

% 2.picture_1:24位rgb圖象 3.picture_2: 8位灰度圖 4.picture_3:黑色背景圖

% 5.picture_4:數字提取圖

總結

以上是生活随笔為你收集整理的matlab读取黑白图目标位置的坐标,matlab对图像处理——裁剪 获取灰度图 获取坐标点...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。