色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

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

前言

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

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

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

01

**RGB和ARGB**

**RGB**

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

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

**ARGB**

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

ARGB—Alpha,Red,Green,Blue.

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

02

**灰度化**

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

03

**二值化**

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

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

簡單實現(xiàn)代碼如下:

{

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的結(jié)構(gòu)元素,掃描圖像的每個像素

用結(jié)構(gòu)元素與其覆蓋的二值圖像做“或”操作

假設(shè)都為0,結(jié)果圖像的該像素為0。否則為1

結(jié)果:使二值圖像擴大一圈

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

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

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

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

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

public bool[] getRoundPixel(Bitmap bitmap, int x, int y)//返回(x,y)周圍像素的情況,為黑色,則設(shè)置為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)//由于經(jīng)過了二值化,所以僅僅要檢查RGB中一個屬性的值

{

pixels[num] = false;//為白色,設(shè)置為false

num++;

}

else if(0==c.G)

{

pixels[num] = true;//為黑色,設(shè)置為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;


    }
看看最終執(zhí)行的效果圖如下:

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

    關(guān)注

    27

    文章

    1299

    瀏覽量

    56837
  • RGB
    RGB
    +關(guān)注

    關(guān)注

    4

    文章

    801

    瀏覽量

    58626
收藏 人收藏

    評論

    相關(guān)推薦

    FPGA圖像處理之CLAHE算法

    在FPGA圖像處理--CLAHE算法(一)中介紹了為啥要用CLAHE算法來做圖像增強。
    的頭像 發(fā)表于 01-04 12:23 ?2665次閱讀
    FPGA<b class='flag-5'>圖像</b><b class='flag-5'>處理</b>之CLAHE<b class='flag-5'>算法</b>

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

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

    圖像算法什么神奇之處

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

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

    數(shù)字圖像處理原理是什么?簡單Ferret算法原理是什么?改進(jìn)的Ferret算法原理哪些步驟?改進(jìn)的Ferret
    發(fā)表于 04-15 06:58

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

    在實際應(yīng)用中常用圖像處理模塊哪些
    發(fā)表于 10-30 06:20

    虹膜圖像預(yù)處理算法

    本文提出了一種基于眼睛圖像均衡化的基礎(chǔ)的新型虹膜圖像預(yù)處理算法。此算法對虹膜圖像進(jìn)行了精確的定
    發(fā)表于 01-13 14:38 ?21次下載

    圖像處理算法哪些_圖像處理十大經(jīng)典算法

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

    有趣的圖像處理算法

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

    最基礎(chǔ)的圖像處理常用算法

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

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

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

    圖像處理常用算法

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

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

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

    圖像處理與機器視覺

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

    FPGA圖像處理算法哪些

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

    常用圖像處理算法哪些?

    圖像處理 (Image Processing) 圖像處理通常是把一幅圖像變換成另外一幅圖像,也就
    發(fā)表于 09-19 10:33 ?1605次閱讀
    <b class='flag-5'>常用</b>的<b class='flag-5'>圖像</b><b class='flag-5'>處理算法</b><b class='flag-5'>有</b>哪些?
    主站蜘蛛池模板: 丰满的寡妇hd高清在线观看| 麻豆精品传媒一二三区| 色偷偷男人的天堂a v| 国家产午夜精品无人区| 欲香欲色天天综合和网| 男人女人边摸边吃奶边做| 高H辣肉办公室| 亚洲精品无码国产爽快A片百度| 久久女婷五月综合色啪| bt成人种子| 亚洲黄色在线| 欧美xxxxxbb| 国产在线精品亚洲观看不卡欧美| 1V1各种PLAY女主被肉| 熟妇久久无码人妻AV蜜桃| 久久国产精品免费A片蜜芽| 扒开老师大腿猛进AAA片| 亚洲欧美一区二区三区九九九| 暖暖 免费 高清 日本视频大全| 国产精品一区二区激情| 2022久久精品国产色蜜蜜麻豆 | 1788vv视频| 熟妇久久无码人妻AV蜜桃| 久久亚洲这里只有精品18| 大胸美女被C得嗷嗷叫动态图| 一个人视频日本在线观看| 日韩爽爽影院在线播放| 久久婷婷色一区二区三区| 国产成人免费观看| 973午夜伦伦电影论片| 亚洲高清在线mv| 日韩高清特级特黄毛片| 快播金瓶梅| 果冻传媒在线观看完整版免费| 99婷婷久久精品国产一区二区| 亚洲精品免费观看| 日本亚洲精品无码区国产电影| 九九在线精品视频| 国产精品亚洲精品久久品| 扒开屁股眼往里面夹东西| 在线观看亚洲免费视频|