在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

圖像處理常用算法有哪些 (上)

jf_78858299 ? 來源:CSDN ? 作者:不羈少年! ? 2023-02-08 16:42 ? 次閱讀

前言

圖片處理是開發過程中經常遇到和要處理的問題,畢竟圖片是比較耗系統資源,網絡資源,存儲空間。。。,因此,圖片的處理顯得格外重要,去百度查閱資料,就會看到很多關于讀片處理的方法,以及圖片的加載框架,他們都是用來處理圖片的。

常見的圖片處理方式大概有如下幾類。比如圖片的等比縮放,圖片海量加載,圖片的裁剪,圖片的無損壓縮,圖片的旋轉,圖片實現畫中畫,圖片實現陰影,改變圖片形狀等

然后,這些操作只是符合日常需求開發,如果涉及的高深的算法層面就不太實用,自己在做人臉識別項目中親自體驗常規處理真的難以解決高難度問題。今天,我介紹一下其他類型的圖片處理算法。首先,我們需要了解倆個概念RGB和ARGB。

01

**RGB和ARGB**

**RGB**

RGB色彩模式使用RGB模型為圖像中每個像素的RGB分量分配一個0~255范圍內的強度值。RGB圖像僅僅使用三種顏色,R(red)、G(green)、B(blue),就能夠使它們依照不同的比例混合,在屏幕上呈現16777216(256 * 256 * 256)種顏色。

在電腦中,RGB的所謂“多少”就是指亮度,并使用整數來表示。通常情況下,RGB各有256級亮度,用數字表示為從0、1、2…直到255。

**ARGB**

一種色彩模式,也就是RGB色彩模式附加上Alpha(透明度)通道,常見于32位位圖的存儲結構。

ARGB—Alpha,Red,Green,Blue.

知道了這倆個概念,就可以了解更多較深層次的圖片處理算法了。下面我介紹一下自己在做人臉識別中常用到的算法。

02

**灰度化**

在RGB模型中,假設R=G=B時,則彩色表示一種灰度顏色,當中R=G=B的值叫灰度值,因此,灰度圖像每一個像素僅僅需一個字節存放灰度值(又稱強度值、亮度值),灰度范圍為0-255。一般有下面四種方法對彩色圖像進行灰度化,詳細方法參考csdn大牛博客,講的非常好。

03

**二值化**

一幅圖像包含目標物體、背景還有噪聲,要想從多值的數字圖像中直接提取出目標物體,最經常使用的方法就是設定一個全局的閾值T,用T將圖像的數據分成兩部分:大于T的像素群和小于T的像素群。將大于T的像素群的像素值設定為白色(或者黑色),小于T的像素群的像素值設定為黑色(或者白色)。

比方:計算每個像素的(R+G+B)/3,假設>127,則設置該像素為白色,即R=G=B=255;否則設置為黑色,即R=G=B=0。

簡單實現代碼如下:

{

Bitmap bitImage = new Bitmap(pictureBox1.Image);//二值化pictureBox1中的圖片

Color c;

int height = pictureBox1.Image.Height;

int width = pictureBox1.Image.Width;

for (int i = 0; i < height; i++)

{

for (int j = 0; j < width; j++)

{

c = bitImage.GetPixel(j,i);

int r = c.R;

int g = c.G;

int b = c.B;

if ((r + g + b) / 3 >= 127)

{

bitImage.SetPixel(j, i, Color.FromArgb(255, 255, 255));

}

else

{

bitImage.SetPixel(j, i, Color.FromArgb(0,0,0));

}

}

}

return bitImage;

}ascript

04

**膨脹算法**

膨脹是將與物體接觸的全部背景點合并到該物體中,使邊界向外部擴張的過程。

能夠用來填補物體中的空洞。

用3x3的結構元素,掃描圖像的每個像素

用結構元素與其覆蓋的二值圖像做“或”操作

假設都為0,結果圖像的該像素為0。否則為1

結果:使二值圖像擴大一圈

膨脹(dilation)能夠看做是腐蝕的對偶運算,其定義是:把結構元素B平移a后得到Ba,若Ba擊中X,我們記下這個a點。全部滿足上述條件的a點組成的集合稱做X被B膨脹的結果。用公式表示為:D(X)={a | Ba↑X}=X腐蝕,膨脹,細化算法B,例如以下圖所看到的。圖中X是被處理的對象,B是結構元素,不難知道,對于隨意一個在陰影部分的點a,Ba擊中X,所以X被B膨脹的結果就是那個陰影部分。陰影部分包含X的全部范圍,就象X膨脹了一圈似的,這就是為什么叫膨脹的原因

![圖片](//file.elecfans.com/web2/M00/8F/3F/poYBAGPjXwWAYVTXAAGdzZEFSiQ676.jpg)

在下圖中,左邊是被處理的圖象X(二值圖象,我們針對的是黑點),中間是結構元素B。膨脹的方法是,拿B的中心點和X上的點及X周圍的點一個一個地對,假設B上有一個點落在X的范圍內,則該點就為黑;右邊是膨脹后的結果。能夠看出,它包含X的全部范圍,就象X膨脹了一圈似的。

![圖片](//file.elecfans.com/web2/M00/8F/C3/pYYBAGPjXwSAY1KwAAOC21wRXiM686.jpg)

我設計了一個簡單的膨脹算法,依次遍歷整個圖片的像素,分析每個像素的周圍八個像素,僅僅要該像素周圍存在黑色的像素,就設置該像素顏色為黑色。以下是使用膨脹算法處理經過二值化后的圖像的實現代碼:

public bool[] getRoundPixel(Bitmap bitmap, int x, int y)//返回(x,y)周圍像素的情況,為黑色,則設置為true

{

bool[] pixels=new bool[8];

Color c;

int num = 0;

for (int i = -1; i < 2; i++)

{

for (int j = -1; j < 2; j++)

{

c = bitmap.GetPixel(x+i,y+j);

if (i != 0 || j != 0)

{

if (255 == c.G)//由于經過了二值化,所以僅僅要檢查RGB中一個屬性的值

{

pixels[num] = false;//為白色,設置為false

num++;

}

else if(0==c.G)

{

pixels[num] = true;//為黑色,設置為true

num++;

}

}

}

}

return pixels;

}


public Bitmap expend()

{

Bitmap bitImage = new Bitmap(pictureBox2.Image);//處理pictureBox2中的圖片

Bitmap bitImage1 = new Bitmap(pictureBox2.Image);

int height = pictureBox1.Image.Height;

int width = pictureBox1.Image.Width;

bool[] pixels;

for (int i = 1; i < width-1; i++)

{

for (int j = 1; j < height-1; j++)

{

if (bitImage.GetPixel(i, j).R != 0)
                {
                    pixels = getRoundPixel(bitImage, i, j);
                    for (int k = 0; k < pixels.Length; k++)
                    {
                        if (pixels[k] == true)
                        {
                            //set this piexl's color to black
                            bitImage1.SetPixel(i, j, Color.FromArgb(0,0,0));
                            break;
                        }
                    }
                }
            }
        }
            return bitImage1;


    }
看看最終執行的效果圖如下:

![圖片](//file.elecfans.com/web2/M00/8F/3F/poYBAGPjXwSABNzVAAAFQ6yAYyI591.jpg)
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 圖像處理
    +關注

    關注

    27

    文章

    1306

    瀏覽量

    56933
  • RGB
    RGB
    +關注

    關注

    4

    文章

    801

    瀏覽量

    58758
收藏 人收藏

    評論

    相關推薦

    C語言編寫的圖像處理各種算法

    這里主要是用C語言編寫的圖像處理各種算法的程序,稍作改動就可在DSPC6000運行
    發表于 09-10 09:06

    圖像算法什么神奇之處

    讓大眾認識到它的神奇。雙攝算法目前,行業主流的高端手機在攝像頭的配置都選用了雙攝配置,雙攝已經成為手機中的標準配置。雙目立體視覺系統一般由雙攝像機從不同角度,同時獲得被測物的兩幅數字圖像,基于視差
    發表于 09-17 09:05

    請問改進的Ferret算法和目前常用的測量算法哪些不同?

    數字圖像處理原理是什么?簡單Ferret算法原理是什么?改進的Ferret算法原理哪些步驟?改進的Ferret
    發表于 04-15 06:58

    常用圖像處理模塊是什么?

    在實際應用中常用圖像處理模塊哪些
    發表于 10-30 06:20

    虹膜圖像處理算法

    本文提出了一種基于眼睛圖像均衡化的基礎的新型虹膜圖像處理算法。此算法對虹膜圖像進行了精確的定
    發表于 01-13 14:38 ?21次下載

    圖像處理算法哪些_圖像處理十大經典算法

    圖像處理,是對圖像進行分析、加工、和處理,使其滿足視覺、心理以及其他要求的技術。目前大多數的圖像是以數字形式存儲,因而
    發表于 01-12 16:17 ?8.6w次閱讀

    有趣的圖像處理算法

    )、圖像剪接(Image Editing),是通過特定的圖像處理方法將本來毫無關系的兩幅圖無縫剪輯到一起,并能夠很好地融合兩者之間的剪接處,產生以假亂真的效果。 2、黑白圖片的著色算法
    發表于 01-12 16:46 ?4745次閱讀

    最基礎的圖像處理常用算法

    圖像灰度不同,邊界處一般會有明顯的邊緣,利用此特征可以分割圖像。需要說明的是:邊緣和物體間的邊界并不等同,邊緣指的是圖像中像素的值突變的地方,而物體間的邊界指的是現實場景中的存在于
    的頭像 發表于 04-28 16:20 ?3286次閱讀
    最基礎的<b class='flag-5'>圖像</b><b class='flag-5'>處理</b><b class='flag-5'>常用</b><b class='flag-5'>算法</b>

    圖像處理常用算法(基礎)

    圖像灰度不同,邊界處一般會有明顯的邊緣,利用此特征可以分割圖像。需要說明的是:邊緣和物體間的邊界并不等同,邊緣指的是圖像中像素的值突變的地方,而物體間的邊界指的是現實場景中的存在于
    的頭像 發表于 04-30 15:26 ?4673次閱讀
    <b class='flag-5'>圖像</b><b class='flag-5'>處理</b><b class='flag-5'>常用</b><b class='flag-5'>算法</b>(基礎)

    圖像處理常用算法

    ,再進行邊緣檢測。不過,利用二階導數信息的算法是基于過零檢測的,因此得到的邊緣點數比較少,有利于后繼的處理和識別工作。
    的頭像 發表于 06-03 09:09 ?3690次閱讀

    機器視覺工業缺陷檢測常用圖像處理算法

    常用圖像處理算法: 1、圖像變換:(空域與頻域、幾何變換、色度變換、尺度變換) 幾何變換:圖像平移、旋轉、鏡像、轉置; 尺度變換:
    的頭像 發表于 06-15 17:59 ?7705次閱讀

    圖像處理與機器視覺

    很強的針對性。因此,圖像增強算法的應用也是針對性的,并不存在一種通用的、適應各種應用場合的增強算法。于是,為了使各種不同特定目的的圖像質量
    發表于 06-20 15:41 ?3次下載

    FPGA圖像處理算法哪些

    早之前的朋友知道我發過一個用chatgpt分析出來的 FPGA圖像處理的知識樹,里面包含了從色域,鏡頭,接口和算法。然后我就發現這個算法部分chatgpt 給我整理的比較亂,查詢了一番
    的頭像 發表于 09-12 09:59 ?1134次閱讀
    FPGA<b class='flag-5'>圖像</b><b class='flag-5'>處理算法</b><b class='flag-5'>有</b>哪些

    常用圖像處理算法哪些?

    圖像處理 (Image Processing) 圖像處理通常是把一幅圖像變換成另外一幅圖像,也就
    發表于 09-19 10:33 ?1665次閱讀
    <b class='flag-5'>常用</b>的<b class='flag-5'>圖像</b><b class='flag-5'>處理算法</b><b class='flag-5'>有</b>哪些?

    FPGA圖像處理算法集成與優化

    、Tophat形態學濾波、RAW8轉RGB888、彩色圖像均值濾波、Alpha背景疊加、直方圖灰度拉伸算法以及自動白平衡算法。每種算法都提供了實現方法和相關公式,涵蓋了
    的頭像 發表于 02-14 13:46 ?64次閱讀
    FPGA<b class='flag-5'>上</b>的<b class='flag-5'>圖像</b><b class='flag-5'>處理算法</b>集成與優化
    主站蜘蛛池模板: 国产高清在线看 | 三级毛片在线 | 九色综合伊人久久富二代 | 在线女同免费观看网站 | 视色4se成人午夜精品 | 亚洲欧洲无码一区二区三区 | 天天摸天天操天天干 | 国产在线观看午夜不卡 | a级黑粗大硬长爽猛视频毛片 | 色婷婷综合久久久中文字幕 | 色婷婷国产 | 俺去俺来也www色官网免费的 | 手机看片1024免费视频 | 性色在线观看 | 99视频精品全国免费 | 2018国产一级天天弄 | 亚洲精品美女久久久久网站 | 欧美色老太婆 | 色94色欧美一区 | 好爽好紧好大的免费视频国产 | 一级毛片a | 欧美午夜视频一区二区三区 | 亚洲国产毛片aaaaa无费看 | xxx性欧美 | 亚洲一级特黄特黄的大片 | 日本欧美一区二区 | 六月婷婷在线 | 午夜免费的国产片在线观看 | 日本一级高清不卡视频在线 | 日本在线视频精品 | 神马午夜限制 | 午夜综合| 午夜免费观看_视频在线观看 | 日韩视频 中文字幕 视频一区 | 超级碰碰青草久热国产 | 国产特黄一级毛片特黄 | 婷婷开心激情 | 亚洲看片| 视频一区 在线 | 日本wwwxx | 亚洲一区二区三区四 |