精华内容
下载资源
问答
  • bitmap图片的某一部分颜色改成其他颜色 private Bitmap ChangeBitmap (Bitmap bitmap){ int bitmap_h ; int bitmap_w ; int mArrayColorLengh ; int [] mArrayColor ; int count = 0 ; ...
    把bitmap图片的某一部分的颜色改成其他颜色
    
    private  Bitmap ChangeBitmap(Bitmap bitmap){
        int bitmap_h;
        int bitmap_w;
        int mArrayColorLengh;
        int[] mArrayColor;
        int count = 0;
        mArrayColorLengh = bitmap.getWidth() * bitmap.getHeight();
        mArrayColor = new int[mArrayColorLengh];
        bitmap_w=bitmap.getWidth();
        bitmap_h =bitmap.getHeight();
        int newcolor=-1;
        for (int i = 0; i < bitmap.getHeight(); i++) {
            for (int j = 0; j < bitmap.getWidth(); j++) {
                //获得Bitmap 图片中每一个点的color颜色值
                int color = bitmap.getPixel(j, i);
                //将颜色值存在一个数组中 方便后面修改
                // mArrayColor[count] = color;
                int r = Color.red(color);
                int g = Color.green(color);
                int b = Color.blue(color);
                int a =Color.alpha(color);
                if ((90<r&&r<=200)&&(90<g&&g<=200)&&(90<b&&b<=200)){//大概得把非道路(路旁变透明)
                   a=0;
                    Log.i("imagecolor","============"+color);
                }else  if (r==255&&g==255&&b==33){//把黄色的箭头白色 因为黄色箭头rgb大部分是255 255 33(值可以用画图工具取值) 组合
                                                  // 但是还有小部分有别的值组成(箭头所不能变成全白有黄色斑点)
                      r=255;
                      g=255;
                      b=255;
                }
                color = Color.argb(a, r, g, b);
                mArrayColor[count]=color;
                Log.i("imagecolor","============"+ mArrayColor[count]);
                count++;
            }
        }
        mbitmap = Bitmap.createBitmap( mArrayColor, bitmap_w, bitmap_h, Bitmap.Config.ARGB_4444 );
        return mbitmap;
    }

    转载 :http://blog.csdn.net/dqliangjun/article/details/52287583


    展开全文
  • 在开发如果遇到需要把图片的白色部分转换成透明,可以采用一下方法进行转换。 原理,通过遍历图片上每个点,得到每个点的ARGB值,通过这个点的RGB的值就可以确定该点的颜色,(255,255,255)白色,(0,...

    原文首发http://blog.lll0.net/post/bitmap_white.html

    在开发如果遇到需要把图片的白色部分转换成透明,可以采用一下方法进行转换。

    原理,通过遍历图片上每一个点,得到每个点的ARGB值,通过这个点的RGB的值就可以确定该点的颜色,(255,255,255)白色,(0,0,0)黑色.通过判断颜色设置A的值,(a=0表示完全透明,a=255 表示不透明)。

    //把白色转换成透明
    public static Bitmap getImageToChange(Bitmap mBitmap) {
            Bitmap createBitmap = Bitmap.createBitmap(mBitmap.getWidth(), mBitmap.getHeight(), Config.ARGB_8888);
            if (mBitmap != null) {
                int mWidth = mBitmap.getWidth();
                int mHeight = mBitmap.getHeight();
                for (int i = 0; i < mHeight; i++) {
                    for (int j = 0; j < mWidth; j++) {
                        int color = mBitmap.getPixel(j, i);
                        int g = Color.green(color);
                        int r = Color.red(color);
                        int b = Color.blue(color);
                        int a = Color.alpha(color);
                        if(g>=250&&r>=250&&b>=250){
                            a = 0;
                        }
                        color = Color.argb(a, r, g, b);
                        createBitmap.setPixel(j, i, color);
                    }
                }
            }
            return createBitmap;
        }

    >

        //把透明转换成白色
        public static Bitmap getImage(Bitmap mBitmap) {
            if (mBitmap != null) {
                int mWidth = mBitmap.getWidth();
                int mHeight = mBitmap.getHeight();
                for (int i = 0; i < mHeight; i++) {
                    for (int j = 0; j < mWidth; j++) {
                        int color = mBitmap.getPixel(j, i);
                        int g = Color.green(color);
                        int r = Color.red(color);
                        int b = Color.blue(color);
                        int a = Color.alpha(color);
                        if (a == 0) {
                            a = 255;
                            g = 255;
                            r = 255;
                            b = 255;
                        }
                        color = Color.argb(a, b, g, r);
                        mBitmap.setPixel(j, i, color);
                    }
                }
            }
            return mBitmap;
        }
    展开全文
  • 不抠图的前提下,如何将图片的黑色部分替换成其它颜色? 试着用图像-调整-替换颜色,但没有成功,AI实施描摹又会变形。需要特定的CMYK色值。 是我打开的方式不对么?请踊跃支招,多谢! ────────...


    试着用图像-调整-替换颜色,但没有成功,AI实施描摹又会变形。需要特定的CMYK色值。
    是我打开的方式不对么?请踊跃支招,多谢!

    ──────────────点评──────────────
    双色调模式不错

    ===========================================================


    展开全文
  • 现需要对图像中的某区域进行颜色替换,效果如上图所示,左一为原图,中间位提取的紫色区域,右图为颜色替换结果,由于没有细致调参数所以效果表现不是很好,但是相关思路可以提供参考。代码如下: #include <...

    现需要对图像中的某区域进行颜色替换,效果如上图所示,左一为原图,中间位提取的紫色区域,右图为颜色替换结果,由于没有细致调参数所以效果表现不是很好,但是相关思路可以提供参考。代码如下:

    
    #include <iostream>
    #include <vector>
    
    #include <opencv2/highgui/highgui.hpp>
    #include <opencv2/core/core.hpp>
    #include <opencv2/imgproc/imgproc.hpp>
    
    #define WINDOWS_NAME "混合图像"
    
    using namespace std;
    using namespace cv;
    
    
    
    cv::Mat img1 = cv::imread("../TestChangeColor/test.jpg", 1);//
    cv::Mat gray1,gray2,addWeightMat;
    cv::Mat result2;
    cv::Mat subMat= cv::Mat::zeros(img1.size(), CV_8UC1);
    cv::Mat purpleMat;//二值图像
    cv::Mat purpleToMorph;
    
    int pThreshold = 80;
    int pContrast =  12;
    
    /*
     * 1.检测紫色区域---->判断是否有紫色区域
     * 2.提取紫色---->二值图像像素点位置
     * 3.颜色替换---->输出替换图
     *
     * */
    
    void onThresholdValueChange(int ,void* tempMat)
    {
        cv::Mat mat2 = *(cv::Mat*)tempMat;
        cv::Mat mat1 = mat2.clone();
        cv::Mat gray1;
        cv::cvtColor(mat1,gray1,CV_BGR2GRAY);
    
        for(int i = 0 ; i < img1.rows; i ++)
        {
            for(int j = 0 ; j < img1.cols; j ++)
            {
                if(purpleToMorph.at<uchar>(i,j) == 255)
                {
                    float alpha = gray1.at<uchar>(i, j) - (float)pThreshold;
                    if(alpha < 0) alpha = 0;
        //            float b = mat1.at<cv::Vec3b>(i, j)[0];
                    float g = mat1.at<cv::Vec3b>(i, j)[1];
        //            float r = mat1.at<cv::Vec3b>(i, j)[2];
                    g *= 1 + (alpha / 256.0) * pContrast;
                    if(g > 255)
                        g = 255;
                    mat1.at<cv::Vec3b>(i, j)[1] = g;
                }
            }
        }
    
        imshow(WINDOWS_NAME,mat1);
    
    }
    
    
    void onContrastValueChange(int ,void* tempMat)
    {
    
        cv::Mat mat2 = *(cv::Mat*)tempMat;
        cv::Mat mat1 = mat2.clone();
        cv::Mat gray1;
        cv::cvtColor(mat1,gray1,CV_BGR2GRAY);
    
        for(int i = 0 ; i < mat1.rows; i ++)
        {
            for(int j = 0 ; j < mat1.cols; j ++)
            {
                if(purpleToMorph.at<uchar>(i,j) == 255)
                {
                    float alpha = gray1.at<uchar>(i, j) - (float)pThreshold;
                    if(alpha < 0) alpha = 0;
        //            float b = mat1.at<cv::Vec3b>(i, j)[0];
                    float g = mat1.at<cv::Vec3b>(i, j)[1];
        //            float r = mat1.at<cv::Vec3b>(i, j)[2];
                    g *= 1 + (alpha / 256.0) * pContrast;
    //                g += 30 + (alpha / 100.0) * pContrast;
                    if(g > 255)
                        g = 255;
                    mat1.at<cv::Vec3b>(i, j)[1] = g;
                }
            }
        }
    
        imwrite("../TestChangeColor/result1.jpg",mat1);
        imshow(WINDOWS_NAME,mat1);
    }
    
    void testChangeColor()
    {
    
        cv::resize(img1,img1,Size(400,400));
        namedWindow("src",CV_WINDOW_AUTOSIZE);
        imshow("src",img1);
        cv::Mat baseMat = cv::Mat::zeros(img1.size(), CV_8UC3);
        /*识别出紫色区域:RGB转HSV--->HSV空间能够非常直观的表达色彩的明暗,色调,以及鲜艳程度
         *
         * */
        cv::Mat hsvMat;
        cv::cvtColor(img1,hsvMat,CV_RGB2HSV);
        cv::cvtColor(img1,gray1,CV_BGR2GRAY);
    
    //    imshow("hsv",hsvMat);
        namedWindow("gray",CV_WINDOW_AUTOSIZE);
        imshow("gray",gray1);
        Scalar lowPurple = Scalar(110, 43, 46);//紫色对应的HSV最小值Scalar(125, 43, 46)
        Scalar highPurple = Scalar(155, 255, 255);//紫色对应的HSV最大值(155, 255, 255)
    
        cv::inRange(hsvMat,lowPurple,highPurple,purpleMat);
    
    
        cv::Mat kernel = getStructuringElement(MORPH_RECT,Size(15,15),Point(-1,-1));
        morphologyEx(purpleMat,purpleToMorph,MORPH_OPEN,kernel,Point(-1,-1));
    
    
        cv::resize(purpleToMorph,purpleToMorph,Size(400,400));
        namedWindow("purple",CV_WINDOW_AUTOSIZE);
        imshow("purple",purpleToMorph);
    
        /*
         * int createTrackbar
         * (
            const string& trackerbarname, //创建滑动条的名字
            const string winname, //所在窗口的名字
            int* value, //一个指向整型的指针,表示滑块的位置,在创建时,滑块的初始位置就是该变量当前的值。
            int count, //滑块可以达到的最大位置的值。滑块最小位置的值始终为0
            TrackbarCallback onChange=0, //这个参数和回调函数有关,这是一个指向回调函数地址的指针,当滑动条上位置改变的时候,回调函数就会再次执行,
            void* userdata=0//用户传给回调函数的数据,用来处理轨迹条事件。如果使用的value实参是全局变量,可以不去管userdata参数。
            );
    */
        namedWindow(WINDOWS_NAME,CV_WINDOW_AUTOSIZE);//createTrackbar之前定义才能出滑块
        createTrackbar("Threshold Value",WINDOWS_NAME,&pThreshold,255,onThresholdValueChange,&img1);
        onThresholdValueChange(pThreshold,&img1);
    
        createTrackbar("Contrast Value",WINDOWS_NAME,&pContrast,255,onContrastValueChange,&img1);
        onContrastValueChange(pContrast,&img1);
    
        cv::waitKey(0);
    
    }
    
    
    int main(int argc, char *argv[])
    {
    
        testChangeColor();
    
        return 0;
    }
    

    参考文献

    [1] 【OpenCV】HSV颜色识别-HSV基本颜色分量范围

    完整代码下载

    展开全文
  • 数字图像处理中常用的采用模型是RGB(红,绿,蓝)模型和HSV(色调,饱和度,亮度),RGB广泛应用于彩色监视器和彩色视频摄像机,我们平时的图片一般都是RGB模型。而HSV模型更符合人描述和解释颜色的方式,HSV的彩色...
  • 话不多说,直接看代码,效果 效果图: ... <...--图片--> <img src="../photo/8_cont1_6.jpg" height="152" width="225"/> <!--span标签 半透明背景层--> <span class=...
  • matlab 图片RGB颜色提取

    万次阅读 多人点赞 2019-10-12 22:32:47
    写了个程序能实现导入图片识别颜色 支持屏幕截图和从电脑倒入图片 鼠标移动到想要取色的地方点击可以获取颜色 可以将颜色暂时保存在右边 目前导出颜色数据是从命令行窗口输出 完整代码 function ...
  • PS(PhotoShop)替换纯色图片颜色

    千次阅读 2016-10-17 09:19:06
    1.复制图层 ...3.用油漆桶工具填充颜色 将前景色设置为红色,然后选择油漆桶工具,点击图层0副本中的黑色部分,最终效果如下图所示。 4.保存 选择菜单“文件”——>"存储为",快捷键Shift+Ctrl+S
  • 1.光:是人类眼睛可以看见的种电磁波,也称可见光谱。在科学上的定义,光是指所有的电磁波谱。光是由光子为基本粒子组成,具有粒子性与波动性,称为波粒二象性,一般人的眼睛所能接受的光的波长在380—760nm之间。...
  • 作为个完全的小白,折腾了个星期多,才完成一张图片的处理,包括添加logo,二维码,以及图片部分细节处理 期间也参考了部分资料:https://www.cnblogs.com/xiaoduilantian/p/9206170.html ...
  • 使用MATLAB提取图片中特定颜色

    万次阅读 多人点赞 2019-06-30 22:30:51
    在做毕设的过程中,用到了这方面的知识,即TIFF格式图片中含有某特定颜色部分提取出来,图片的其他部分变为白色。 提取过程大致包括以下几步: (1)先将rgb图像转换为hsv图像; rgb转换到hsv的公式如下: ...
  • Opencv 中图片像素操作的应用实例——计算图片颜色区域大小所占比  From: https://www.cnblogs.com/changxiang/p/7533294.html  对图片进行处理,其中图片像素的处理是基本的过程,包括对图片像素的遍历,...
  • 切割图片这里不是真正的切割,只是用CSS取图片中的一部分而已,主要有两种方式,一是做为某一元素的背景图片,二是用img元素的属性。下面有个不错的示例,大家可以参考下 切割图片这里不是真正的切割,只是...
  • Python3 识别判断图片主要颜色,提取指定颜色的方法   HSV颜色识别-HSV基本颜色分量范围     一般对颜色空间的图像进行有效处理都是在HSV空间进行的,然后对于基本色中对应的HSV分量需要给定个严格的范围...
  • 最近遇到此需求,后悔当初选修课没好好学PS。。。。。。 我是用下面的方法解决的: 图像--调整--替换颜色--选中带+号的那个吸管--单击要被替换的颜色--设置新的颜色 搞定。。。。。。
  • 话不多说,直接看图,先打开你想要抠的图然后新建个透明图层:然后在你想抠的那...然后选中你想要去掉的部分,delete掉,最后就会留下你想要抠的图,比如这张图,我四个角落的白色部分删去后,就得到如下图片:...
  • 问题是这样的:在用html写网页,现在有一张图片,需要置于最底层,然后在图片上方叠加个半透明颜色层,并在半透明颜色层上叠加文字。 效果就像这张图片一样: ![图片说明]...
  • 用css设置只显示图片一部分

    万次阅读 2013-05-28 11:50:06
    今天模仿网站写页面时,保存一张图片时,发现其他图片都是用的一张整合的图片,前几天都是又这些图片拆分了。今天因为是演示购物步骤的。我觉得和在一起挺好。就在网上搜了下这个怎么写。发现个还可以的描述。搜...
  • 1、复制图层,用选区工具(比如套索工具或者磁性套索工具)需要变色的部分选出来,选出来之后,创建蒙版。这么做的目的是保护原图,方便以后修改。2、选中复制的图层,然后选择“图像”菜单里的“调整”,选择...
  • 色彩空间(color space)具体的定义可以参照这里[1],简单的说就是定量描述颜色子集的方法。现在在我们的显示设备中,常用的色域有sRGB、Adobe RGB、display P3等,以及比较超前的Rec.2020。 为了保证同一张图片...
  • 公司的移动端应用,最近要换一个 UI 主题色,在更换图片控件的选中与未选中效果时,本以为需要 UI 配合给新颜色切图的,然而并不是,直接使用 setColorFilter() 改颜色就好了。 无知的我很开心 get 了个新...
  • 点击Cell改变背景图片颜色时不能添加selectionStyle,如果添加更改也没有效果 以下这句话不能添加: cell.selectionStyle = UITableViewCellSelectionStyleNone; 点击更改背景图片: - (UITableViewCell *)...
  • 颜色空间转换 OpenCV有150中颜色空间转换方法,可以使用以下方式查看所有颜色空间转换方法 str.startswith()函数:用于判断个字符串是否为某个字符串的开头。 dir()函数:带参数时,返回参数的属性、方法...
  • Java Opencv对图片中特定颜色进行提取

    千次阅读 2018-05-14 21:08:15
    下面的代码实现了对图片中黑色部分的提取: 首先将图片从RGB空间装换到HSV空间,然后提取图片中的特定颜色。 import org.opencv.core.Core; import org.opencv.core.CvType; import org.opencv.core.Mat; ...
  • 转载:matlab 图片无值NaN部分显示为白色 - y3254321的博客 - CSDN博客 https://blog.csdn.net/y3254321/article/details/71172514 问题 matlab中使用函数imagesc 显示图像时,nan值会显示为最小值颜色(蓝色)。 ...
  • python 修改图片特定区域的颜色

    千次阅读 2020-06-18 11:10:12
    import numpy as np from PIL import Image img = Image.open("1....#设置图片修改后图片颜色 这个作者设置为白色 colorl =[255,255,255] #依次遍历我们需要修改颜色图片区域 for col in range (100,200): ...
  • HTML设置背景颜色及背景图片

    千次阅读 2020-08-26 23:17:27
    背景 background-color 设置背景颜色 ...- 如果背景的图片大于元素,将会部分背景无法完全显示 - 如果背景图片和元素一样大,则会直接正常显示 background-image: url("./img/1.png"); background-r
  • 本方法是通过CSS3滤镜 filter 中的 drop-shadow 将png图片的非透明部分生成任意颜色的投影,然后将原始图片隐藏起来,从而达到改变图片颜色的目的 先看效果图 接下来是代码 <p><strong>原始图标</...
  • Js获取图片主色调,近似色,互补色,以及根据图片颜色获取主题配色方案详解、插件。 **应用场景:**在很多时候,前端开发过程中需要动态的获取图片的主要的颜色值,并根据主色调去调整主题样式的颜色或者模拟出一套...
  • 最近项目需要做图片叠加在个模型上,而且还需要通过调整颜色改变两个图片颜色和透明程度。 另外,还需要个调控值,管理两张图片是否完全显示,Shader如下: Shader "Unlit/BlockTextrue" { ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 226,818
精华内容 90,727
关键字:

怎么把图片的一部分换颜色